我一直在尝试使用ffmpeg创建具有透明背景的gif,但是只要运动在背景之上,像素就会停留在该位置。它是一棵带有风动画的树,这就是它的结局:https://i.imgur.com/pq4ArBG.png
我首先尝试创建调色板,然后创建gif:
ffmpeg -i Tree_%04d.png -vf palettegen=reserve_transparent=1 palette.png
ffmpeg -framerate 30 -i Tree_%04d.png -i palette.png -lavfi paletteuse=alpha_threshold=128 treegif.gif
似乎以前的框架只是停留在那儿,但我不知道如何处理它们。
答案 0 :(得分:4)
在ffmpeg源代码(libavcodec / gif.c)中,有一些命令行标志-它们是“ -gifflags -offset”,“-gifflags -transdiff”和“ -gifimage”。 我在一些具有透明度的示例帧上进行了尝试,我认为其中第一个会产生您所描述的效果:
ffmpeg -i Tree_%04d.png -vf palettegen=reserve_transparent=1 palette.png
ffmpeg -framerate 30 -i Tree_%04d.png -i palette.png -lavfi paletteuse=alpha_threshold=128 -gifflags -offsetting treegif.gif