具有来自 png 图像序列的透明度的 FFMPEG GIF

Nic*_*k S 7 ffmpeg gif

我一直在尝试使用 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
Run Code Online (Sandbox Code Playgroud)

以前的帧似乎只是留在那里,但我不知道如何处理它们。

ksh*_*erd 7

在 ffmpeg 源代码 (libavcodec/gif.c) 中有一些命令行标志 - 它们是“-gifflags -offsetting”、“-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
Run Code Online (Sandbox Code Playgroud)