我可以使用以下命令创建动画 gif。
ffmpeg -i wrist_0001.png -vf palettegen=16 palette.png
ffmpeg -i wrist_%04d.png -i palette.png -filter_complex "fps=20,scale=720:-1:flags=lanczos[x];[x][1:v]paletteuse" logo.gif
我想知道该怎么做是:注意:我试图避免输入手腕_0001.png 手腕_0002.png ......是否可以将手腕_0001.png 转换为手腕_0020.png?
最佳答案
ffmpeg -framerate 20 -i wrist_%04d.png -filter_complex "scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=16[p];[s1][p]paletteuse" -frames:v 20 -loop 0 20framesloop.gif
-framerate
image demuxer输入选项。您的原始命令默认为 25 fps,然后使用 fps 过滤器转换为 20 fps,这意味着正在丢弃帧。-loop 0
是 GIF muxer 的默认设置,但我添加它是为了展示如果您想更改循环它是如何工作的。 0 表示无限循环。最有效的方法是重新混合上一步中的 GIF:
ffmpeg -i 20framesloop.gif -c copy -final_delay 300 -loop 0 3secpause.gif
-final_delay 300
以厘秒为单位取值,因此 3 秒为 300 厘秒。见 ffmpeg -h muxer=gif
了解更多信息。关于loops - 使用 ffmpeg 仅使用某些帧创建无限循环动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68524738/