2009年3月23日月曜日

Silverlight 3 Beta 1で (H.264/AAC).mp4 の再生を試す簡単なやり方

先日、Microsoftから発表された、Silverlight 3 Beta 1(以下、SL3Beta1)の新機能の一つが、映像コーデックにH.264、音声コーデックにAAC、コンテナフォーマットにISO Base Mediaファイルフォーマット(ISO/IEC 14496-12)を使った動画ファイル(以下、(H.264/AAC).mp4)の再生機能です。

しかし、SL3Beta1は開発者向けのβ版なので、一般ユーザ向けのβ版のランタイム、つまりSL3Beta1のWebブラウザ用プラグインは配布されていませんし、今のところ、Silverlight 3が正式リリースされる前に、一般ユーザ向けにランタイムを配布する予定はないとのことです。

また、SL3Beta1のライセンス条項に従えば、Microsoft社と別途契約して許諾を得ない限り、公開されたWebサイト上でテストすることもできません。

ただ、開発者がPC上のローカルな環境でテストすることまでは、さすがに禁止されてはいないので、自分ではアプリを作成できないが、どうしても試してみたい方は
  1. 開発者用 Microsoft Silverlight 3 ランタイム Beta 1 (Windows版/Mac OS X版)をインストールする
  2. JW WMV Playerをダウンロードして展開する
  3. 展開したフォルダに、(H.264/AAC).mp4な動画ファイルを置く
  4. サンプルのHTMLファイル(readme.html)を参考に、動画ファイル名とサイズの指定を書き換える
という手順で、開発者向けのツールを使わずに、再生機能の簡単な確認ができます。
JW WMV Player以外のSilverlight版のビデオ再生アプリとしては、Tim Heuer氏のSilverlight 2 Video Playerがありますが、こちらでも同様の手順で再生可能です。

なお、WebブラウザとしてFirefoxやChromeを使用している場合、ローカルなHTMLファイルのパスに日本語(例:デスクトップ)が含まれていると、Silverlightアプリケーションが実行できなくなりますので注意してください。
IEであればパスに日本語が含まれていても問題ありませんでした。恐らく、URLのエンコーディング絡みの問題だと思います。
Silverlight側とWebブラウザ側のどちらの問題か?については、あえてコメントしませんのであしからずw

それから、再生に必要な(H.264/AAC).mp4な動画ファイルの入手方法ですが、Microsoft社が推奨しているのは、Microsoft Expressio Encoder 2(試用版もあります)にExpression Encoder 2 Service Pack 1を適用し、エンコード機能を使って(H.264/AAC).mp4な動画ファイルを作成する方法です。

そういうのは面倒くさいけど高解像度の動画の再生をちょっと試してみたいなーという方は、Apple - QuickTime - HD Gallerryからファイルを入手するのが一番手っ取り早くてオススメです。

「Silverlight 3向けの動画ファイルとしてAppleのサンプルファイルを紹介するのはけしからん!」とおっしゃる方もいらっしゃるでしょうが、Microsoftの高精細コンテンツ ショーケースにはWMV HDなファイルしかないので仕方がありません。というかどうにかしてください>中の人

具体的には、適当な映像を選択してから、HTMLのソースを表示して、拡張子が.movになっているURLを探し、QuickTime Plug-inアドオンを停止(そうしないとブラウザ内で再生が始まってしまうので)した状態でWebブラウザのアドレスバーに入力するか、ダウンロード用のツールか何かを使ってダウンロードしてください。

ここで公開されているファイルは、(H.264/AAC).movなQuickTime形式のファイルですが、QuickTimeのファイルフォーマットは、ISO Base Mediaファイルフォーマットのベースになっている関係で、Silverlight3でも一応再生ができます。他に、iPod向けの(H.264/AAC).movなファイルをいくつか試してみましたが、今のところ問題ないようです。

もし、上記のサイトでダウンロードしたファイルのサイズが数十バイトだった場合、それはWindows MediaのASXファイルに相当する、QuickTime Metafileという形式のメタファイルですので、メモ帳やテキストエディットで中身を開いて、実体のファイル名を探してダウンロードし直してください。

以上の手順で私も実際に試してみましたが、Silverlight 3の発表時にポイントとして挙げられていた、「GPUによる動画の再生支援」については、全画面化やサイズ変更等のスケーリングがメインで、GPUにH.264デコードをさせるようなことはしていないことがCPUの負荷から確認できました。

ただ、これについては昨年9月の時点で、MS本社のAlex Zambelli氏がDXVAを使ったハードウェアアクセラレーションはサポートしないよと非公式に発言しているので、予想の範疇です。

その他、QuickTime Plug-Inとの挙動の違いとしては、
  • (QuickTime形式ではない)同じ動画ファイルをQuickTime Plug-InとSilverlight 3 Beta 1で再生すると色味が多少違う
  • 再生品質がキープできない程高解像度の映像だった場合に、QuickTime Playerはフレームを間引くが、Silverlight3は画面が固まって音が途切れる
  • ビットレートが高い映像をhttp経由で再生した場合に、再生バッファは十分溜まっているのに画面が1秒程度固まることがたまにある。
等の違いがありましたが、Silverlight 3 はまだBeta1ですので正式リリースでは変わっているかもしれません。

最後に、何故 Silverlight 2用のアプリでSilverlight 3の新機能である(H.264/AAC).mp4が再生できるのか?という疑問を持った方もいらっしゃると思いますが、Silverlight 3 Beta 1 ランタイムは、<param>タグのminRuntimeVersionも、AppManifest.xamlのRuntimeVersionも無視して、新機能が常に使える状態になっているからというのが、現時点での予想です。
この件については、気が向いたら 項を改めてまた書いてみたいと思います。(了)

0 コメント:

コメントを投稿