linux Archive
3G携帯の動画を扱うためのffmpegのビルド方法
数多くの動画フォーマット、コーデックに幅広く対応したアプリケーションといえばffmpegがやはり一番有名だと思います。事実、ffmpegベースのアプリケーションも多く出回っていて、mplyer, 携帯動画変換君なんかは有名だと思います。
キャリア共通仕様
そんなffmpegですが、Linuxで1からビルドを行おうとすると、結構ハマるポイントが多いです。またバージョンによってビルド方法が異なったり、1つ違うことを行おうとするとコーデックやライブラリが不足したりし、なかなかうまくいかないことが多かったりします。そこで、今回は「3G携帯の動画を扱う」ことに特化したffmpegのビルド方法をまとめてみたいと思います。3G携帯と一口にいってもキャリアごとに利用できるフォーマットやコーデックも差異があるのですが、次のポイントを抑えれば各キャリアの(ほぼ)すべての端末に対応した動画ファイルを扱うことができます。ポイントは
- サイズ : 176 x 144
- フォーマット : 3gp/3gpp2
- 動画 : Mpeg4
- 音声 : AAC / AMR
と、なります。DoCoMoとSoftbankは特に問題ないのですが、厄介なのはauです。
auはクセがある
auは「低画質モード」「高画質モード」の2種類の動画を扱うことができ、それぞれで利用できるフォーマット、Codecが異なります。
低画質モード
- フォーマット : amc
- 動画 : Mpeg4
- 音声 : mp3 / Qcelp
高画質モード
- フォーマット : 3gpp2
- 動画 : Mpeg4
- 音声 : AAC / AMR
問題はここでのQcelpです。2007年8月末現在、ffmpegは正式にはQcelpに対応していません。「正式に」と言うのはユーザ間レベルでは対応したような人の声も出ているようですが、それでも本家コミュニティでは対応する気も無いようですし、ちょっと手を出すのも面倒そうです。なので、auは高画質モードに限定してあげると、各キャリアほぼ同じ条件にそろえることができます。
作業環境
今回も例のごとくFedora5でいじってみます。基本的にFedora6, 7やCentOSでもそんなに変わらないと思います。必要そうなコマンドもあわせて掲載しているので他のディストリビューションでも何とか参考にはなるかと思います。
目標
各キャリアに対応した、、と謳っても、それでは目標もあやふやなので、とりあえず各キャリアで撮影した動画ファイルから「音声部分」のみを切り取ってみたいと思います。つまりは
ffmpeg -i [in].3gp [out].wav
で、問題なくwavとして切り出すことができるように目指します。
また、同時にwavと静止画(jpeg)から各キャリアに3gpフォーマットの動画ファイルを作成できることも目指します。言い換えれば、動画ファイルの解析と作成、というわけですね。
指針
流れとしては
- 必要コマンド、ツールのインストール(ビルド環境整備)
- 必要コーデックのインストール
- オプションに注意してffmpegをビルド
と、なります。環境によっては、1は読み飛ばしていただいても構わないと思います。