【コラム】

OS X ハッキング!

151 早く来い! iPod with Videoの到着を待ちきれずにH.264エンコード(1)

    海上忍  [2005/10/17]

    「One more thing...」で何が出るかと思ったら、下馬評通りと申しましょうか、ビデオ再生に対応したiPodが登場! わずか1カ月でiTunesがv6にメジャーバージョンアップ! 小さなリモコンが付いた新しいiMac G5も発売! ……と、ここのところ、Appleの勢いは凄いですねえ。

    さて、今回はビデオ再生に対応した新しいiPod with Video(以下、iPod-V)について……の予定だったが、10月17日の時点で(一個人として購入した)製品が到着していないため、iPod-Vに備えた動画ファイルの準備を中心にあれこれ考えてみたい。

    本命はH.264

    iPod-Vが対応するビデオフォーマットは、MPEG-4とH.264の2種類。目玉はなんといってもQuickTime 7からサポートされた後者で、MPEG-2の2倍以上ともいわれる圧縮効率の高さがウリだ。Blu-RayやHD DVDにも採用されるなど、今後映像用コーデックの主流となることは確実だ。

    iTunes Music Storeで販売されているビデオクリップも、その多くがH.264でエンコードされていることは既報のとおり。圧縮効率はファイルサイズに直結するため、HDD容量の制約を背負ったiPod-Vにとっては、非常に重要な意味を持つ。

    H.264エンコードで気になる点

    映像ストリームがH.264、オーディオストリームがAACでエンコードされたiPod-V用動画ファイルは、QuickTime Playerで作成することがもっとも簡単だ。ソースがQuickTime Playerで再生可能なこと、Pro版へのアップグレードが必要なこと、という2点をクリアする必要があるものの、メニューから[ファイル]→[書き出し...]を選択、ダイアログで[ムービーからiPod(320x240)]という書き出しオプションを選ぶだけで"iPod-V最適化ムービー"に変換できてしまう。

    しかし、大きな問題点が1つある。エンコードにかなり時間がかかるのだ。試しに2分02秒のMPEG-4ファイル(Video=480x360/29.97fps、Audio=AAC/44.1kHz、ビットレート=約2Mbps)をiPod最適化ムービーに変換したところ、PowerMac G5(G5 2.0GHzx2/2.5GB RAM)の力を持ってしても4分10秒の時間を要した。確かにファイルサイズは節約できるが、実時間の2倍は少しキツい。

    映像と音声が多重化されたMPEG-2ファイル(プログラムストリーム)をそのまま変換できない点もイタい。QuickTime MPEG-2再生コンポーネント(別売)をインストールしていれば、映像だけは変換されるのだが、音声が失われてしまう。DVDレコーダに録画した番組をiPodで見よう、と目論むユーザにとっては喫緊の課題といえる。

    それでもH.264を選びたい

    iPod-Vが対応するH.264ムービーは、画面サイズはQVGA(320x240)、ビットレートは最高768kbpsと条件的には厳しい。しかし、前述した"iPod-V最適化ムービー"とビットレートの水準をあわせてエンコードしたMPEG-4ムービー(Video=640kbps、Audio=128kbps)を比較すると、その差は歴然だ。

    まず、ノイズの発生頻度が違う。MPEG-4の場合、文字や毛髪など細い線の周囲にモスキートノイズが発生しやすく、動きの激しい部分ではブロックノイズが目立ってしまうが、H.264の場合はあまり目立たない。テストにはiPhotoで作成したスライドショーを使用したのだが、写真が切り替わるときのモワモワッとしたノイズは、H.264のほうが格段に少なかった。あくまでMacの画面で見たときの印象だが、画質の善し悪しはおそらくiPod-Vで見た場合でも大差ないだろう。

    ffmpegでH.264エンコード

    H.264に対応する商用のエンコーダはいくつかあるが、オープンソースの分野でも「ffmpeg」という優れたエンコーダがある。正確に言えば、多数のコーデックに対応するフリーなビデオ再生ソフトとして知られるVLC(Video Lan Client)のサブプロジェクト「x264」のフロントエンドとして動作するのだが、ffmpegでも"iPod-V最適化ムービー"は生成可能だ。

    ffmpegのインストールだが、x264以外にも、音声部分(AAC)のエンコードに必要な「FAAC」、DVDレコーダで録画したMPEG-2ストリームの音声部分(AC3)のデコードに必要な「liba52」など必要な外部パッケージを導入したあと、最後にffmpegのコンパイルを行う。具体的な手順は、以前PSP用の動画作成を取りあげたときの記事(第130~131回)が参考になるはずだが、GCC 4.0ではそのままコンパイルできないものもあるので、次回まとめて紹介したい。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン