縦横サイズ変更
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
のオプションを追加のこと。