ffmpegでmp4にリサイズする
経緯
動画投稿系サイトを作った時に、重いんで動画を変換する機構を作ることになった。
mp4が対応ブラウザが多いのでそのフォーマットを選んだ。
mp4では横幅縦幅が2の倍数にならなければいけない制限があるらしい。
アスペクト比を維持したままリサイズすると、このエラーにぶち当たった。
起こった問題
以下のコマンドを実行すると2の倍数にしてくれ的な問題が起きる。
※横幅か縦幅に-1を指定すると、他方に合わせてアスペクト比を維持したまま変換してくれる。
bash
## エラーが起きるコマンド
ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4
## こんな感じのエラーが起きる(一部抜粋)
## [libx264 @ 0xa3b85a0] width not divisible by 2 (1000x369)
対策
-1ではなく-2にする。
※横幅か縦幅に-2を指定すると、他方に合わせてアスペクト比を維持したまま変換してくれて、2の倍数になる。
bash
ffmpeg -i input.mp4 -vf scale=-2:720 output.mp4