【コラム】
OS X ハッキング!
152 早く来い! iPod with Videoの到着を待ちきれずにH.264エンコード(2)
2005/10/24
届きました! 届きましたよ、新iPod!! それでもう、見まくりですよ。何を? って、あらかじめムービー化しておいたメガデモを。本当はAmigaで見るべきなのだけれど、iPodのほうが気軽に楽しめることも事実…… さすがに、FDDを振動させて曲を奏でるというAmigaらしさ爆発の"フロッピーミュージック"は実機でなければムリですが。
さて、今回は予定どおりiPod with Video(以下、iPod-V)について。QuickTime Playerではなく、オープンソースソフトウェアの「ffmpeg」を利用したiPod-V用ムービーの作成方法を解説してみよう。
ffmpegのインストール
ffmpegでは、外部のコーデックを利用して動画と音声をエンコード/デコードできる。ただし、ソースコードに含まれるconfigureスクリプトを実行する際、有効にするコーデックをオプションで指定する都合上、必要なものは事前にインストールしておかなければならない。
前回説明したとおり、iPod-Vが対応する動画コーデックはMPEG-4 VideoとH.264の2種類、音声コーデックはAAC-LCの1種類。そのうちMPEG-4 Videoはffmpegに同梱(libavcodec)されているため、特別な準備は不用だが、後二者のエンコードには外部の「x264」と「FAAC」が必要となる。
libavcodecが対応しないコーデックは他にもある。市販のDVDレコーダで録画した番組をソースに使おうと考えているのならば、AC3デコーダの「liba52」が必要だ。また、QuickTime MPEG-4など音声ストリームにAACを用いたムービーをソースにする場合は、AACデコーダの「FAAD2」が必要となる。
以上を踏まえたffmpegのインストール手順は、以下に示すとおり。今回はMP3エンコーダの「lame」やMPEG-4系コーデックの「XviD」は省略したが、必要に応じてインストールしておいてもいいだろう。
x264のインストール
$ tar xjf x264-snapshot-20051021-2245.tar.bz2
$ cd x264-snapshot-20051021-2245
$ sh configure --enable-pthread
$ make ; sudo make install
FAACのインストール
$ cd faac; sh bootstrap ; sh configure
$ make ; sudo make install
liba52のインストール
$ tar xzf a52dec-0.7.4.tar.gz
$ cd a52dec-0.7.4
$ sh configure ; make ; sudo make install
FAAD2のインストール
$ tar xzf faad2-15092004.tar.gz
$ cd faad2
$ vi common/mp4ff/mp4ffint.h
348行 : void mp4ff_track_add(mp4ff_t *f);
↓ ↓ ↓
348行 : static void mp4ff_track_add(mp4ff_t *f);
$ sh bootstrap ; sh configure
$ make ; sudo make install
ffmpegのインストール
$ cd ffmpeg
$ sh configure --enable-faac --enable-faad --enable-a52 --enable-x264 --enable-pthreads --enable-gpl
$ make
エンコードは高速、しかし……
iPod-V用ムービーを自作する場合、ソースにはDVDレコーダで録画したテレビ番組(地上アナログ放送)を使う機会が多いはず。しかし、Mac OS X Tiger標準の機能ではDVD-VRフォーマットのDVDを読み取ることができないため、現状ではサードパーティー製アプリケーションの力を借りることになる。以下の解説では、MPEG-2ビデオとAC3オーディオが多重化されたMPEG-2ファイルをソースとしているが、その作成手順は割愛させていただく。
どうにかしてMac OS XにMPEG-2ファイルを持ち込んでしまえば、後の作業はとても簡単。ffmpeg(libavcodec)にはMPEG-1/2のデコード機能が標準装備されているため、「-i」オプションでソースとして指定するだけでいいのだ。ソースに使用されているコーデックは自動識別されるため、ただMPEG-2ファイルを指定するだけでOK。
手始めに、MPEG-4ムービーの作成方法から。「-i」以外に使用したオプションの役割を順に説明すると、「-f」はファイルフォーマット名を、「-vcodec」は生成するビデオストリームのコーデックを、「-b」はビデオストリームのビットレートを、「-s」は画面サイズを、「-acodec」はオーディオストリームのコーデックを、「-ar」と「-ab」はそれぞれオーディオストリームのサンプリングレートとビットレートを、最後に生成するファイル名、となる。
続いてはH.264ムービーのエンコード。基本的にはMPEG-4ムービーと同じだが、ビデオコーデックに「h264」を指定することと、ビデオストリームとオーディオストリームのビットレートをそれぞれ768kbpsと160kbps以内で指定することを押さえておけばいいだろう。
エンコードに要した時間だが、約1分45秒のソース(VIDEO=MPEG-2/720×480/8Mbps CBR、AUDIO=MP2/48kHz/384kbps)は、PowerMac G5 2.0GHz Dual/2.5GB RAM/Mac OS X 10.4.2という環境で、MPEG-4が約45秒、H.264が約1分36秒となった。単純比較はできないが、H.264エンコード(「ムービーからiPod」プロファイルを使用)に約13分45分秒を要したQuickTime Playerと比較すると、品質はともかくエンコード速度はffmpegの圧勝、といえるだろう。
しかし、ffmpegでエンコードしたH.264ムービーをQuickTime Playerで再生すると、画面は真っ白、音声しか再生されない。iPod-Vへの転送も不可能だ。H.264をサポートするVLCでは映像が再生されるので、問題はffmpegが生成するファイルの構造にあるのか……? 現時点では不明なため、確認次第当コラムにて報告することにさせていただきたい。
ヘッドライン
- 【レビュー】手袋したままでもOK!? タッチ操作対応の全部入りボードPC - ソニー「VAIO L VPCL129FJ/S」[12:00 2/10]VAIO
- 【レビュー】ゲーム機もPCもコレ1台でOKの27型フルHD液晶 - ベンキュージャパン「M2700HD」[09:00 2/10]周辺機器
- アップル「Aperture 3」発表、プロ向けの性能にiPhotoの容易さを融合[02:28 2/10]アップル
- Appleの「A4」プロセッサとは何か? - エンジニアらの意見[01:54 2/10]アップル
- 医療ソリューション企業Epocrates、iPadは医療現場で人気と報告 - 臨床医2割が購入意向[21:00 2/9]アップル
- 米Apple CEOジョブズ氏がNYで秘密の会合 - 大手新聞社幹部らを訪問[21:00 2/9]アップル
- コーレル、「Corel WinDVD 2010」のアップデートを公開[20:46 2/9]ソフト
- Microsoft、Windows 7の「バッテリ交換」警告問題に回答[20:33 2/9]Windows 7
- ネットユーザーがキーボードでこだわるポイント - アイシェアが調査[19:53 2/9]周辺機器
- クレオ、"ブライダル"に欠かせないソフト「筆まめ Braidal 6」2製品を発売[19:42 2/9]ソフト









