ffmpegによる動画編集

縦横サイズ変更

xxx.mp4の縦サイズを640に変更し、yyy.mp4として保存するコマンドです。scaleのコロンの右側を-1にすることで、アスペクト比が元のままになります。

ffmpeg -y -i xxx.mp4 -vf scale=640:-1 yyy.mp4

主にサイズを減少させたいときに使います。なお、リサイズした後に、縦横いずれかが奇数になるとエラーが出るので、その場合はscaleをちょっと変更します。


拡張子変更

動画の場合:
avi -> mp4
ffmpeg -i xxx.avi -pix_fmt yuv420p yyy.mp4

mov -> mp4
ffmpeg -i xxx.mov -pix_fmt yuv420p yyy.mp4

画像の場合:
ffmpeg -i a.png a.jpg


静止画を動画に変換

基本形 (Win):

ffmpeg -i xxx%03d.png yyy.mp4
ffmpeg -i xxx%d.png yyy.mp4

上は「001.png」〜「100.png」など、0が埋められた3桁連番の場合。
下は「1.png」〜「100.png」など、0埋めがない連番の場合。

Macだと再生できないので、pngとmp4の間に追加:
-pix_fmt yuv420p

heightサイズがおかしいというエラーの場合、pngとmp4の間に追加:
-vf “scale=trunc(iw/2)*2:trunc(ih/2)*2”

フレームレートを調整したい場合、-iの前に以下を追加:
-r 10
1秒間に10枚という意味

テンプレ:

ffmpeg -r 5 -i %03d.png -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" yyy.mp4

gifにしたい場合は以下。オプションなどは不要。

ffmpeg -i xxx%d.png yyy.gif