連拍照片轉成gif或影片(ffmpeg)

跑馬拉松會有場邊幫忙拍照的,有時候給一連串個人照片,我們就可以透過ffmpeg把他們轉成動圖或是影片

  1. ffmpeg照片轉mp4影片
  2. ffmpeg照片轉gif動圖

以下分別介紹轉換方法


ffmpeg照片轉mp4影片

ffmpeg -framerate 3 -i %02d.jpg -c:v libx264 -pix_fmt yuv420p output.mp4

如果覺得轉成的mp4影片速度比較慢,可以把-framerate 3改成-framerate 6或更大得數值;反之,若覺得mp4影片速度較快,可以把-framerate 3改成-framerate 2或更小得數值。

-i %02d.jpg 是指照片檔案的檔名為01.jpg,02.jpg,03.jpg....


ffmpeg照片轉gif動圖

ffmpeg -framerate 3 -i %02d.jpg -loop 0 output.gif

如果覺得轉成的動圖速度比較慢,可以把-framerate 3改成-framerate 6或更大得數值;反之,若覺得動圖速度較快,可以把-framerate 3改成-framerate 2或更小得數值。

-i %02d.jpg 是指照片檔案的檔名為01.jpg,02.jpg,03.jpg....

-loop 0是表示反覆播放

使用上述這個指令產生出來的圖片會有網格感,是因為採用的色盤沒有經過最佳化。


最佳化轉gif動圖

最佳化就是需要分成兩個階段來處理

階段1. 生成使用的顏色色盤
階段2. 轉換成動圖

ffmpeg -i %02d.jpg -vf palettegen palette.png

ffmpeg -framerate 3 -i %02d.jpg -i palette.png -lavfi paletteuse -loop 0 output.gif

參數同前面得解釋


留言