使用 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以避免製作臨時調色板檔案。

相關內容