縦横サイズ変更

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

軽いgifにしたい。
→ 静止画をmp4にしてから、mp4をgifにする。そのとき、vfオプションでサイズ変更。

ffmpeg -i xxx.mp4 -r 10 -vf scale=500:-1 xxx.gif

以下で5秒間の動画にする、時間指定。それ以降が強制カットされる。

ffmpeg -i xxx.mp4 -r 10 -t 5 xxx.gif


動画->静止画

ffmpeg -i xxx.mp4 -vcodec png -r 30 yyy%04d.png

-r: 1秒間のフレーム数を指定

サイズが大きい場合は、

-vf scale=-1:200

のオプションを追加のこと。