我希望 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以避免创建临时调色板文件。