Image 使用FFMpeg覆盖时使用调色板

Image 使用FFMpeg覆盖时使用调色板,image,video,ffmpeg,video-processing,image-manipulation,Image,Video,Ffmpeg,Video Processing,Image Manipulation,我正在尝试使用FFMpeg为动画GIF添加覆盖 这是可行的,但质量相当糟糕。基本上,我无法使用我生成的调色板,这会导致很多抖动。GIF的主要意思是,不叠加的分辨率也很低 我还想对水印应用不透明度,在某一点上也有效,但这是一个加号 这就是我所拥有的: ffmpeg -v error -i image.gif -vf 'palettegen' palette.png -y; ffmpeg -v error -i image.gif -i watermark.gif -i palette.png -f

我正在尝试使用FFMpeg为动画GIF添加覆盖

这是可行的,但质量相当糟糕。基本上,我无法使用我生成的调色板,这会导致很多抖动。GIF的主要意思是,不叠加的分辨率也很低

我还想对水印应用不透明度,在某一点上也有效,但这是一个加号

这就是我所拥有的:

ffmpeg -v error -i image.gif -vf 'palettegen' palette.png -y;
ffmpeg -v error -i image.gif -i watermark.gif -i palette.png -filter_complex '[1:v]scale=80:30, [0:v]overlay=(main_w-overlay_w) - main_h/30:(main_h-overlay_h) - main_h/30, paletteuse' -an image-watermark.gif -y
有一次,我能够使用主GIF的调色板,因此它的质量得到了提高。然而,水印看起来很糟糕。很明显,我必须做叠加,然后是调色板,这样调色板就包含了水印中的颜色。然而,我不知道该怎么做


有人能给我指出正确的方向吗?

您必须为希望编码为GIF的相同视觉内容生成调色板

ffmpeg -v error -i image.gif -i watermark.gif -filter_complex  '[1:v]scale=80:30[wm];[0:v][wm]overlay=(main_w-overlay_w) - main_h/30:(main_h-overlay_h) - main_h/30, palettegen' palette.png -y;

ffmpeg -v error -i image.gif -i watermark.gif -i palette.png -filter_complex '[1:v]scale=80:30[wm];[0:v][wm]overlay=(main_w-overlay_w) - main_h/30:(main_h-overlay_h) - main_h/30[vid];[vid][2]paletteuse' -an image-watermark.gif -y

我保留了您现有的语法,不过最好标记所有输入和输出焊盘,而不要依赖自动输入拾取。

谢谢!我实际上已经添加了这一点,但是主GIF的质量仍然像像素化一样糟糕。它看起来像是被降采样了。请使用完全指定的焊盘进行尝试。对于完全指定的焊盘,您的意思是:?谢谢,我非常感谢您的帮助。不幸的是,主图像看起来仍然是像素化的。这是正确的尺寸,但看起来质量比原版低。我还有很多其他的过滤器在工作,只是这一个我似乎不知道-/