2009年8月26日水曜日

WMV配信サイトとMacとSilverlightの話 (その1)

先週は、Microsoft Tech·Ed Japan 2009の開催、Snow Leopardの発売等、話題に事欠かない一週間でしたが、同じく先週の8月25日、動画配信サイトのShowTimeがついにMac OS X環境での視聴への対応を発表しました。翌日の26日には無料動画サイトのGyaOも、2009年秋に予定されているYahoo!動画との統合と同時にMac OS X環境で視聴可能になる旨を発表しています。

【公式ページ】
【関連記事】
それにしても、BB Watchと同じ記事を配信しているINTERNET Watchを含めても、このニュースを取り上げたニュースサイトが3つというのは少々寂しく感じられます。

というのは、Macユーザ(の一部)は、デジタル著作権管理(DRM)機能で保護された、Windows Media Video形式の動画を配信するサイト(以下「WMV配信サイト」とします)を正規に視聴する手段を、前世紀からずっと待ち続けていたからです。

2008年10月にSilverlight 2がリリースされたことで技術的には視聴が可能になったあとも、これに対応するWMV配信サイトがなかなか現れず、しびれを切らしていたのですが、これでようやく一つの節目を迎えたように思います。

その間の、Macユーザ(の一部)のMicrosoft社に対する積年の恨みつらみを書き連ねるとブログの容量が足りなくなってしまいますので、そこはさっくり省略して、今回はMacユーザの立場から、WMV配信サイトをMacで視聴するポイントと今後の予想について書いてみたいと思います。

WMV配信サイトをMacで視聴するポイント

ポイント1: PowerPC搭載のMacでは再生できない。
今回、WMV配信サイトの動画コンテンツがMac OS X環境で視聴できるようになったのは、Mac OS Xで動作可能なSilverlight版の動画再生プレイヤーが開発されたからです。

Silverlightは、現状 1.0/2/3の3種類がありますが、WMV配信サイトが著作権管理に使用している Windows Media DRM(WM DRM)に対応しているのは、Silverlight 2以降になっています。

しかし、PowerPC版のMac OS X向けに提供されているのは、Silverlight 1.0だけです。

その理由としては、Mac OS X版のSilverlight 2以降ではSilverlightランタイムの核であるCoreCLRのWindows版のバイナリを、Win32 APIをエミュレートするPlatform Adaptation Layer(PAL)というレイヤー上でほぼそのまま実行する仕組みになっていることが大きいのではないかと考えられます。

Windows版のCoreCLRのバイナリを非Intel製のCPUで実行するには、Win32 APIだけではなくCPUもエミュレートする必要があるので、パフォーマンスが足りなくなってしまうのではないか?というのがその理由です。

「結局は単にPowerPCなMacのシェアが低いからじゃね?」という、もっともな意見はさておき、PowerPC搭載のMacではWMV配信サイトを視聴できませんので、どうしてもMacで再生したい場合は、Intel Macを購入しなければなりません。

尚、CPUの種類については、動作条件として Core Duo 1.83GHz 以上となっていますが、これはSilverlight 2および3の動作条件と同じです。

Intel Macでこの条件を満たさないのは、2006年に出荷されたMac miniに搭載されていた Core Solo 1.5GHz と Core Duo 1.66MHz だけのはずですが、これらのMacでSilverlight 2をインストールしようとすると、CPUのチェックでエラーが発生するそうです。

ポイント2:Mac OS X 10.4.8より古いOSでは再生できない。
この件については、初代のIntel Macの時点でMac OS X 10.4.6がインストールされていて、無料アップデートで10.4.11までアップデートが可能なので上記の条件を満たしていれば特に問題ないはずです。

むしろ心配なのは、今月の28日に発売されたMac OS X 10.6(Snow Leopard)での動作です。
Silverlightは今のところ32ビット版しか提供されていないので、64ビットカーネルモードのSnow Leopardで何かしら問題が発生するのではないかと少し心配しています。

特に心配なのは、手元の Mac OS X 10.5.8 + Silverlight 3.0.40723.0 + Firefox 3.0.13/3.5.2 では
入力された先頭の文字が化けてしまう現象が発生している日本語入力関連ですが、今回ShowTimeから発表されたプレイヤーでは日本語入力はありませんでしたし、日程的にはMicrosoft社のSnow LeopardでのSilverlightのテストは既に終わっていないとおかしいはずですので、多分大丈夫だろうと信じることにします。

本当に信じてるかどうかは聞かないでください。(ぉぃ

ポイント3:全画面モードで視聴時にカクツクようであれば画面解像度を下げてみる
ShowTimeの現時点のプレイヤーはSilverlight 2アプリケーションであるために、Silverlight 3のGPUハードウェアアクセラレーション機能には対応していません。

Silverlight 2では元映像の拡大処理をCPUでしか実行できないので、その分CPUとバスに負担がかかります。この負担はCPUは遅いが画面解像度が高いMac(結構あります)で全画面表示する場合に顕著になります。

ShowTimeの動画コンテンツは640x480ピクセル以下のようですので、再生画面を表示する前に、Mac OS Xの「システム環境設定」の「ディスプレイ」で画面解像度を下げてから再生プレイヤー側で全画面モードにすることで、CPU負荷を多少は下げることができるようです。

もし、ShowTimeの動画再生プレイヤーがSilverlight 3アプリケーションになれば、全画面モードの場合に限り、動画の拡大処理をGPUハードウェアアクセラレーション機能を用いてGPU側で実行することが可能になるので、CPUとバスの負担を減らせます。ぜひ対応を検討していただきたいものです。

ただし、Silverlight 3は、Windows版/Mac OS X版を問わず、AvivoやPureVideoのようなGPUによる映像のデコード支援機能には対応していませんので、これ以上の負荷低減についてSilverlight 3の次のバージョン以降に注目するしかありません。

私個人はグラフィックドライバの安定性に対して根強い不信感を持っていますので、インターネット上の信頼性が低い映像ストリームをユーザの個別許可無しに直接GPUに流し込むことについてはかなり不安があるのですが、Microsoft社もライバルであるFlashの動向次第では踏み切らざるを得ないだろうなーぐらいに考えています。

尚、Windows版のSilverlight 3では非全画面モードでもGPUハードウェアアクセラレーションが有効になるのに、Mac OS X版のSilverlight 3では有効にならない理由ははっきりとは分かりません。

Microsoft社はこの制限を、Mac OS XのWebブラウザプラグインのモデルに起因する制限であると主張しているようなのですが、いやそんなことはないという意見もあるようで、ちょっと判断がつきませんでした。

(その2に続く)