使用 ffmpeg,如何转换 MP4、裁剪并调整为 GIF?

使用 ffmpeg,如何转换 MP4、裁剪并调整为 GIF?

我希望 ffmpeg 抓取 1280x720 MP4 视频文件,裁剪为正方形尺寸比例,然后调整为 640x640

以下两个命令对我有用,GIF 质量很好,但缺少正确的调整大小功能。它确实给了我一个 GIF 输出,但尺寸是 1138x640,而不是 640x640。

生成调色板:

ffmpeg -y -ss 30 -t 3 -i input.mp4 \
-vf fps=10,scale=1138:-1:flags=lanczos,palettegen palette.png

使用调色板输出 GIF:

ffmpeg -ss 30 -t 3 -i input.mp4 -i palette.png -filter_complex \
"fps=10,scale=1138:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

这给了我一个 1138x640.gif,但是如何在不依赖另一个单独的命令的情况下将其变为 640x640?

答案1

这是一个适用于 1280x720 输入的简单方法。

生成调色板:

ffmpeg -i input.mp4 -filter_complex "fps=10,scale=-1:640,crop=ih:ih,setsar=1,palettegen" palette.png

创建 GIF:

ffmpeg -i input.mp4 -i palette.png -filter_complex "[0]fps=10,scale=-1:640,crop=ih:ih,setsar=1[x];[x][1:v]paletteuse" output.gif

如果需要,您可以使其更加复杂添加force_aspect_ratio比例选项将任意输入尺寸调整为 640x640,并通过添加 split 和 fifo以避免创建临时调色板文件。

相关内容