【コラム】
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が生成するファイルの構造にあるのか……? 現時点では不明なため、確認次第当コラムにて報告することにさせていただきたい。
ヘッドライン
- 【レポート】今週の秋葉原情報 - TWO TOPがリニューアルオープン、ついに2TB HDDの1万円割れも[01:07 3/22]自作
- 【レポート】5分でわかる今週のPC注目記事 - 3月14日〜3月20日[18:05 3/21]
- すべての旧来メディアはiPadに集まる - News Corpのマードック氏の予言[17:51 3/20]アップル
- Apple訴訟を受け、HTCがGoogleと共同で反訴を計画か - NYT[17:39 3/20]アップル
- iPad発売を前に、Appleが事業者とのコンテンツ提供交渉で苦戦 - WSJ[11:27 3/20]アップル
- 一度の再起動でOSやデータを完全保護「HD革命/WinProtector Ver.3」[21:44 3/19]ユーティリティ活用術
- ASUS、防塵ファン装備のRadeon HD 5670カード「EAH5670/DI/512MD5」[21:23 3/19]自作
- MSI、高性能クーラー「Twin Frozr II」装備のRadeon HD 5830カード[21:12 3/19]自作
- 【コラム】3Dグラフィックス・マニアックス 第91回 人工知性でコンテンツを生成するプロシージャル技術(15)[20:48 3/19]自作
- Apple iPad、オンライン+店舗合わせた1週間の予約累計台数は40万台?[20:17 3/19]アップル










