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