ffmpegでiPhoneで再生できる動画を作成する

少し調べて実験してみたので備忘録的エントリー。

ffmpegというOpen Sourceの動画形式変換ソフトがあります。およそ動画の変換に関しては出来ないことはないだろうというくらいの便利ツールなのですが、ソフト自体がGUIを持っていない上、実際に変換する際には恐ろしく長いオプションを指定することになるので、通常はこのようなWrapperツールを経由して使うことの多いソフトです。

ただ、そういったツールは往々にして有料のものが多い上、Batch処理の場合は直接コマンドを実行したほうが何かと楽というのもあるので、コマンドラインからffmpegを使って、iPhoneやiPadで見られる動画を作成する方法を調べてみました。

例によってMac環境限定です。

ffmpegのインストールはMacPortsを使います。また、動画の形式はh264/aacとします。

まず、MacPortsから以下の必要なソフトをインストールしておきます。

# port install x264
# port install faac
# port install faad2
# port install a52dec
# port install lame

次に、次のコマンドでffmpegをインストールします。

# port install ffmpeg +faac +faad +a52 +x264 +lame

オプションの指定を忘れないように注意してください。

インストールが終わると “ffmpeg” コマンドが使えるようになります。実際にあるファイルを変換する場合のコマンドは次のようにします。

# ffmpeg -y -i "$INFILE" -threads 0 -vcodec libx264 -
  -b 512k -s 640x360 -r 30000/1001 -async 50 -
  -acodec libfaac -ab 128k -ar 48000 -ac 2 -vpre hq -vpre ipod640 -
  -bf 0 -coder 0 -flags2 -wpred-dct8x8 "$OUTFILE"

ここで、$INFILEは入力ファイル名、$OUTFILEは出力ファイル名です。このオプション指定の場合、映像はビットレートが512k bpsで29.97 fpsのh264、音声は128k bps、48000Hzのaacでそれぞれ変換されたサイズ640×360の動画が出来上がります。

ここでの肝は “-vpre ipod640” オプション。iPhone/iPad/iPod用の動画はBaseline Profileという方式で変換されている必要があるのですが、このオプションを付け忘れると方式が変わってしまい、iPhone等にも同期されなくなるのでご注意下さい。

コメント

%d人のブロガーが「いいね」をつけました。