窓の杜Logo

バックナンバー

最終回:ISMA 1.0準拠のMPEG-4エンコーダーとしてのQuickTime 6(後編)(02/10/03)

第3回:ISMA 1.0準拠のMPEG-4エンコーダーとしてのQuickTime 6(前編)(02/09/19)

第2回:QuickTime Playerでムービーファイルを編集しよう(02/09/12)

第1回:QuickTimeとは何か? 最新バージョンv6の新機能(02/09/05)

.

【最終回】

ISMA 1.0準拠のMPEG-4エンコーダーとしてのQuickTime 6(後編)

MPEG-4ファイルの互換性を探る

(02/10/03)

 4回にわたってお送りしてきた本連載も今回で最終回。今回は前回に引き続き「QuickTime Pro」v6のMPEG-4機能について、「QuickTime」以外のISO MPEG-4エンコーダーとの比較、互換性について見てみよう。

「QuickTime Pro」以外でMPEG-4ファイルを作るには

 前回の最後の部分で「QuickTime Pro」で作ったISO MPEG-4ファイル(ISMA 1.0準拠)を「EnvivioTV」など、ほかのMPEG-4ファイルプレイヤーで再生する実験を行ったが、今回はその逆、ほかのソフトで作ったMPEG-4ファイルを「QuickTime Player」で再生する実験を行ってみよう。

 「QuickTime Pro」以外でMPEG-4ファイルを簡単に書き出すことのできるソフトというと業務用以上のレベルのものがほとんどで、個人ユーザーにはなかなか手が出ないというのが現状だ。そこで、今回は「誰でもMPEG-4ファイルが作れる」ということを前提に、以下のソフトで実験を行おうと思う。

 これに加えてビデオ編集ソフト「VirtualDub」を利用した。

 実験に移る前に少々お断りを。ISMA 1.0のMPEG-4ファイルに関しては“これが正真正銘、正しいISMA 1.0のMPEG-4ファイルである”という実装がないのが現状だ。個々の作成・再生環境でMPEG-4ファイルの各機能の実現や解釈に差があるし、バグもあるだろう。今回のこの実験も上記のツールを現バージョンで試した限定的なものだということを念頭においてほしい。

 さて、実際のMPEG-4ファイルの作成は、前回、前々回と同じムービーをソースにして行った。手順は以下のとおりだ。

  1. 映像処理
    「VirtualDub」に640×480ピクセル、30fps、非圧縮のソースAVI(音声なし)を読み込み、リサイズプラグインでバイキュービック方式を使って320×240ピクセルにリサイズ。各コーデックで音声なしのAVIファイルを出力。

  2. 音声処理
    ソースとなるWAVファイル(16bit、44.1KHz、非圧縮)を「FAAC」で44.1KHz、48Kbpsに圧縮。「FAAC」はコマンドラインツールで、以下のようなパラメーターで処理した。
    faac -m 4 -o LC -c 44100 -b 48000 src.wav dest.aac

  3. 映像と音声の結合
    「mp4UI」で各AVIファイルとAAC圧縮後の音声ファイルを結合。

ツリー型のインターフェイスでMPEG-4ファイルを作成するソフト
ツリー型のインターフェイスでMPEG-4ファイルを作成するソフト
 ここで「mp4UI」の使い方を簡単に紹介しておこう。起動したらまず[Options]タブで[Add hint tracks]と[Make ISMA compliant]をオフ、[Advanced functions/information]をオンにしておく。次に[General]タブで[Open]ボタンをクリックし、作成するMPEG-4ファイル名を指定すると、新たにMPEG-4ファイルを作ってくれる。続いて[Add]ボタンでAVIファイル、AACファイルを順に読み込むと、ウィンドウ内のツリーにビデオトラックとオーディオトラックが出現するのが分かる。そしてツリーのいちばん上、ファイル名の書いてある部分を右クリックして現れるメニューから[Advanced]-[Make ISMA compliant]を指定すると、新たにトラックが2つ作成される。これは“Object Descriptor(OD)”と“Scene”のトラックで、MPEG-4ファイル内の情報をまとめる重要なトラックだ。最後に再びツリーのいちばん上を右クリックして[Optimize]を指定すると、MPEG-4ファイル内のトラックのレイアウトが最適化される。

 では各コーデックの圧縮パラメーターを設定するうえで今回特に注目したポイントを記してみよう。

「DivX」
 「DivX Pro」v5.0.2を使用。ビットレートは700Kbps。“1-pass”と“2-pass”の両モードで[MPEG4 Tools]の“Use Quarter Pixel”、“Use GMC”、“Use Bidirectional Encoding”のそれぞれをオン、オフしてエンコード。

「XviD」
 「Koepi's new media development site」(http://roeder.goe.net/~koepi/)にアップロードされている2002年9月23日付けのバイナリー(記事執筆時の最新バージョン)を使用。“1 Pass - CBR”と“2 Pass”でエンコード。“2 Pass”の2回目のパスは“2 Pass - 2nd pass Int.”を使用。ビットレートは“1 Pass - CBR”は700Kbpsを指定、“2 Pass”はファイルサイズの目安で“1 Pass - CBR”で作られたファイルと同じファイルサイズを指定。[Advanced options]-[Global]タブの[Global settings]-[Quantization type]で“H.263”と“MPEG”を切り替えてエンコード。

「RMP4」
 「REALmagic MPEG-4 Video Codec」v1.1を使用。[General Encoding Parameters]の[Rate Control(RC)Mode]で“Constant Bitrate”、“Variable Bitrate(Size)”、[RMP4 Encoding Tools]で“Bidirectional Prediction”、“Adaptive Quantization”をそれぞれ切り替えながらエンコード。ビットレートは700Kbps。できあがったAVIファイルはそのままでは「mp4UI」に読み込めないので、「XviD」付属の「AviC (FourCC changer)」で[FourCC Description Code]と[FourCC Used Codec]をそれぞれ“DIVX”に変更。

各MPEG-4ビデオコーデックの機能は、「QuickTime」で再生できるのか?

総評
 各MPEG-4ファイルを「QuickTime Player」に読み込んでの再生結果だが、まず、再生ができたすべての場合において、ファイルを読み込んでから最初の再生では音声が途中で“飛んで”しまうという状況が確認できた。一度再生を終えて、ファイルを閉じずに再度再生すると音飛びは解消される。問題が「QuickTime」にあるのか、「FAAC」でエンコードした音声ファイルに問題があるのか、「mp4UI」にあるのかは定かではないが、同時に比較対象として利用した「EnvivioTV」(Windows Media Playerのプラグインとして使用)ではそのような問題は起きなかった。

「DivX」
 では、「DivX」から見てみよう。1-pass、2-passともに3つの機能を使わない場合と、“Use Bidirectional Encoding”だけをオンにした場合は「QuickTime Player」での再生が可能だったが、それ以外の場合ではファイルを開いた時点で『QuickTimeが現在対応していないMPEG-4テクノロジーが含まれています』というエラーメッセージが出て再生が始まらなかった。エラーの詳細を見ると、“スプライト”を使っていると認識されているらしい。また、“Use Bidirectional Encoding”オンの場合、映像がチラつき、コマ落ちのような画面になってしまうため、“正常再生”にはほど遠い状態であった。比較対象の「EnvivioTV」ではいずれも再生可能だったが、“B-directional Prediction”がオンになると映像に赤いにじみが発生し、“Use Quarter Pixel”、“Use GMC”のいずれかがオンになると、激しく映像が崩れる部分が見られた。“Use Quarter Pixel”、“Use GMC”、“Use Bidirectional Encoding”の各項目は、ISO MPEG-4のAdvanced Simple Profile(ASP)で利用できる機能であり、ISMA 1.0でもASPは利用できることになっている。今回作ったMPEG-4ファイルがASPのものであるという確証はなく、「mp4UI」を通した時点で何らかの情報の欠落または付加が行われているという可能性もあるが、「QuickTime」がまだASPに対応していないことを考えると、この結果はある意味妥当だと言えよう。

「DivX」2-passモード、“Use Quarter Pixel”、“Use GMC”、“Use Bidirectional Encoding”すべてオフ
quicktime6pro4_divx2p.mp4(1.49MB)
(右クリックの[対象をファイルに保存]メニューで保存してから再生してください)
「DivX」1-passモード、“Use Quarter Pixel”、“Use GMC”、“Use Bidirectional Encoding”すべてオン
(「QuickTime Player」では再生不可)
quicktime6pro4_divx1pqgb.mp4(1.66MB)
(右クリックの[対象をファイルに保存]メニューで保存してから再生してください)

「XviD」
 「XviD」では、[Quantization type]を[MPEG]に切り替えると、エラーメッセージが出て再生不能となる。それ以外の場合、映像は問題なく再生できた。AVIファイルのまま「Windows Media Player」で再生すると、始めの数フレームが引っかかったように繰り返し再生される問題があったのだが、MPEG-4ファイルにした時点でその問題も解消された。ただし、AVIファイルを再生した場合と比べて、映像中の赤色の部分が少々紫色に引っ張られる傾向があった。「EnvivioTV」では[Quantization type]が[MPEG]の場合でも再生可能だった。

「XviD」2 Passモード、h.263 quantization使用
quicktime6pro4_xvid2ph263.mp4(1.56MB)
(右クリックの[対象をファイルに保存]メニューで保存してから再生してください)
「XviD」1 Passモード、MPEG quantization使用
(「QuickTime Player」では再生不可)
quicktime6pro4_xvid1pmpeg.mp4(1.56MB)
(右クリックの[対象をファイルに保存]メニューで保存してから再生してください)

「RMP4」
 「RMP4」の場合、実験したすべての場合において「QuickTime Player」での再生が可能だった。しかし、画質は「DivX」「XviD」に比べるともっとも悪く、ブロックノイズが多く感じられた。また、“Bidirectional Prediction”を指定した場合、「QuickTime Player」では動きがコマ落ちが多発し“動画”と呼ぶにはつらい状態、「EnvivioTV」では激しくノイズが走り、鑑賞には値しない品質となってしまった。

「RMP4」VBRモード、“Bidirectional Prediction”、“Adaptive Quantization”オフ
quicktime6pro4_rmp4vbr.mp4(2.00MB)
(右クリックの[対象をファイルに保存]メニューで保存してから再生してください)
「RMP4」VBRモード、“Bidirectional Prediction”、“Adaptive Quantization”オン
quicktime6pro4_rmp4vbrba.mp4(2.02MB)
(右クリックの[対象をファイルに保存]メニューで保存してから再生してください)

「QuickTime」とMPEG-4の今後

 ひとくちでMPEG-4といっても実装の差が大きく、せっかくのISMAオープン仕様もまだまだ機能していないというのが現状だろう。これらの結果を見て『「QuickTime」やMPEG-4ファイルが使えない』という結論を出すのはあまりにも早計だが…。

 これらの混迷の原因のひとつとして、筆者は“MPEG-4の互換性に関する情報の少なさ”をあげたい。どのエンコーダーのどのパラメーターが、どのプレイヤー(デコーダー)で再生可能なのか不可能なのか、というドキュメントがあまりにも少ないのだ。「QuickTime」に関してはAppleのデベロッパーサイトで情報が開示されているが、ほかのプレイヤーとの互換性に関する記述は少ない。幸か不幸か「QuickTime」ではISMA 1.0仕様の一部しかサポートしていないため、「QuickTime」で作ってほかのプレイヤーで再生するという場合には問題が少ないが、今回のようにその逆となると不明なことが多すぎる。MPEG-4 Industry Forum(MPEG4IF)やISMAが音頭を取って検証作業が進められるという話もあるのでこれに期待したい。

 「QuickTime」のMPEG-4関連機能に立ち返ってみよう。今回「QuickTime」を使わずにMPEG-4を作る作業を行って、「QuickTime Player」からのMPEG-4ファイル出力がいかに簡単かということを実感した。また「Adobe After Effects」などの映像制作ソフトからも「QuickTime」を使って直接MPEG-4ファイルが書き出せるのも評価できる点だ。ただし、ISMA 1.0の仕様をフルサポートしていないことはやはり残念だ。画質がどうのという以前に、「QuickTime」ほどの知名度とシェアをもつ技術が仕様をフルサポートしないと、『「QuickTime Player」での再生のみをサポート』というようなMPEG-4ファイルが大量に出てくることも考えられる。これではせっかくのオープン仕様もだいなしである。悪貨は良貨を駆逐するのたとえを引くのは不適切かもしれないが、早い時点で互換性の問題に決着をつけてくれることを望む。

今回使用したオンラインソフト

・「DivX Pro」
【著作権者】DivXNetworks, Inc.
【対応OS】Windows 98/Me/2000/XP
【ソフト種別】フリーソフト(広告非表示のプロ版はシェアウェア30ドル)
【バージョン】5.0.2(02/05/16)
□DivX.com: The Official Site of DivX Video
http://www.divx.com/

・「XviD」
【著作権者】The XVID team
【対応OS】(Windows 2000で動作確認)
【ソフト種別】フリーソフト
【バージョン】-
□xvid.org(ソースのみが公開されている)
http://www.xvid.org/
□Koepi's new media development(バイナリーのダウンロードページ)
http://roeder.goe.net/~koepi/

・「REALmagic MPEG-4 Video Codec」
【著作権者】Sigma Designs, Inc.
【対応OS】Windows 98/Me/2000/XP
【ソフト種別】フリーソフト
【バージョン】-
□Sigma Designs, Inc. | Video On Demand for Broadband Set-top Appliances
http://www.sigmadesigns.com/
□「REALmagic MPEG-4 Video Codec」の紹介ページ
http://www.sigmadesigns.com/products/MPEG4_video_encoder.htm

・「FAAC」(ソースのみが配布されている)
【著作権者】AudioCoding.com
【対応OS】(Windows 2000で動作確認)
【ソフト種別】フリーソフト
【バージョン】1.0(01/10/26)
□Welcome to the world of audiocoding - AudioCoding.com
http://www.audiocoding.com/

・「MinGW」
【著作権者】The MinGW Team
【対応OS】(Windows 2000で動作確認)
【ソフト種別】フリーソフト
【バージョン】2.0.0(02/09/05)
□MinGW -- Minimalist GNU For Windows
http://www.mingw.org/

・「mp4UI」
【著作権者】Markus Brenner 氏
【対応OS】Windows 95/98/Me/NT/2000/XP
【ソフト種別】フリーソフト
【バージョン】0.93
□mp4UI - MPEG4 file tool
http://www.mediacruiser.de/mp4UI/

・「VirtualDub」
【著作権者】Avery Lee 氏
【対応OS】Windows 98/NT/2000/XP
【ソフト種別】フリーソフト
【バージョン】1.4.10
□Welcome to virtualdub.org! - virtualdub.org
http://www.virtualdub.org/

(モッティ)


トップページへ
QuickTime Proでオーサリング!INDEX へ
Copyright (c) 2002 Impress Corporation All rights reserved.
編集部への連絡は mado-no-mori-info@impress.co.jp まで