FFmpeg で 各種動画を MPEG-4、Xvic、DivX (H.264)形式に変換する方法です。
おまかせ変換
画質や音質を「お任せ」で変換するコマンドです。入力ファイルをinput.avi、出力ファイルを output.avi とすると以下で変換できます。ffmpeg -i input.avi -c:v mpeg4 -vtag xvid output.avi
とはいえ、これはあまり綺麗には変換できないでしょう。そこで以降にあるのオプションを説明します。お好きなものを追加してみてください。
インターレースを解除する
映像がギザギザイにちらつくインターレース。これを解除するには -deinterlace を指定します。ffmpeg -i input.avi -c:v mpeg4 -vtag xvid -deinterlace output.avi
画質と音質を指定する
画質を指定したい場合は -q:v オプションを指定します。また音質を指定したい場合は -q:a で指定します。
数値は1〜31となり、1が最高品質、31が最低品質となります。
(もちろん品質が高いほどファイルサイズは大きくなります)
以下は画質を5、音質を4と指定しています。
ffmpeg -i input.avi -c:v mpeg4 -vtag xvid -deinterlace -q:v 5 -q:a 4 output.avi
音声だけをそのまま(無劣化)にする
音声をまったく劣化させずに画像のみを変換(圧縮)するには -c:a copy を指定します(先述の -q:a は外します)。
ffmpeg -i input.avi -c:v mpeg4 -vtag xvid -deinterlace -q:v 5 -c:a copy output.avi
※元の音声形式によってはエラーとなり変換できないことがあります。
解像度を指定する
モバイル機器向けなどに動画の縦横のサイズを変更するには -vf scale を使います。画像を小さくすればファイルサイズも小さくなります。指定方法は、 -vf scale=縦サイズ:横サイズ となります。
片方だけサイズ指定してもう一方のサイズを自動計算させたい場合(縦横比の維持)は、自動計算させたいほうの値を「-1」とします。
ffmpeg -i input.avi -c:v mpeg4 -vtag xvid -deinterlace -vf scale=640:320 -q:v 5 -c:a copy output.avi
ffmpeg -i input.avi -c:v mpeg4 -vtag xvid -deinterlace -vf scale=640:-1 -q:v 5 -c:a copy output.avi
ffmpeg -i input.avi -c:v mpeg4 -vtag xvid -deinterlace -vf scale=-1:240 -q:v 5 -c:a copy output.avi