[FFmpeg] 動画をリサイズする
動画のサイズを変更する
動画の解像度を変更するときに使用するコマンドです。
ピクセル指定してリサイズ
-s
オプションのあとに、動画のタテのサイズ、ヨコのサイズをピクセル指定します。
※アスペクト比は無視されます
ffmpeg -i INPUT.mp4 -s 640x360 OUTPUT.mp4
アスペクト比を維持してリサイズ
アスペクト比を保ったままサイズ変更する場合は -vf scale=[横幅]:[縦幅]
を使います。
ffmpeg -i INPUT.mp4 -vf scale=1080:-1 OUTPUT.mp4
横幅を調整する場合は、縦幅に-1
を入れます。(縦を調整する時は逆にする)
サイズ変換時にエラーが起きた場合の対処法
動画の画面サイズを変換するとき、以下のようなエラーメッセージが出て変更できないことがあります。
[libx264 @ 0000021ff413b040] height not divisible by 2 (720x405)
(中略)
[out#0/mp4 @ 0000021ff3a9c3c0] Nothing was written into output file, because at least one of its streams received no packets.
エラーの原因
上記のエラーメッセージは「ファイルの高さ (height) を2で割り切れる数字にしてください」という意味です。
つまり、出力される動画の縦と横の幅のいずれかが 奇数になる 場合にエラーが起きます。
対処法
このようなエラーが起きる場合は、変更後の動画のサイズが2で割れる数になるように調整する必要があります。
アスペクト比を維持したいときは-1
ではなく -2
を使います。(例: scale=1080:-2
)
-2
を指定された側は、強制的に2で割れる数に調整されます。(720×405の場合は、自動的に720×404となる)
ffmpeg -i INPUT.mp4 -vf scale=720:-2 OUTPUT.mp4