2019年2月10日 : してログ

ffmpeg を使用してアスペクト比のおかしい動画を、再エンコードなしで直すことができます。

ffmpeg -i movie_src.mp4 -c copy -aspect 4:3 movie_fix.mp4

パラメータを見ればだいたい分かる、ということで説明省略。以上。

ものぐさ変換バッチツールを作っておく

毎回オプションを調べたり正しいアスペクト比を計算するのも面倒なので、汎用的な変換バッチツールを準備しておくことにします。代表的なアスペクト比、4:3 と 16:9 の横と縦を用意しておき、実際の変換結果を見てみることで正しい結果のものを残すイメージです。

aspect.bat
ffmpeg -i src.mp4 -c copy -aspect 4:3 fix_4-3.mp4
ffmpeg -i src.mp4 -c copy -aspect 3:4 fix_4-3_v.mp4
ffmpeg -i src.mp4 -c copy -aspect 16:9 fix_16-9.mp4
ffmpeg -i src.mp4 -c copy -aspect 9:16 fix_16-9_v.mp4

ついでに回転と反転も直す

スマホ撮影ものやライブ配信ものだと、回転の向きがおかしかったり、左右が反転していたりするものも多くなっています。左右反転はそのままでもまあいいんですが、回転方向は直してあげないと見にくいです。再生時にプレイヤー側でも直せますが、操作が面倒なのでメタ情報を修正してあげるのがいいです。

時計回りに90度回転
ffmpeg -i movie_src.mp4 -c copy -metadata:s:v:0 rotate=-90 movie_fix.mp4
反時計回りに90度回転
ffmpeg -i movie_src.mp4 -c copy -metadata:s:v:0 rotate=90 movie_fix.mp4

※ストリーム識別子は、":s:v:0" で最初のビデオストリームという意味になる(で合ってると思います)