原文: Video, Mobile, and the Open Web (on March 18, 2012 by Brendan Eich)
[この記事は、brendaneich.com の クロスポスト です。]
私が SXSW の最初の Browser Wars パネルを基に The Open Web and Its Adversaries の記事を書いてから 5 年が経過 しました。(先日行われた Browser Wars の 第 5 回 はとてもすばらしいものでした。参加してくださった方に感謝します。)
これまでの歴史
私がプレゼンテーションした 短いスライドショー には少し古くなっているところがあります。WPF/E や Adobe Apollo を憶えていますか? (これらはコードネームで、現在の製品名とは異なります。) Web は 2007 年から長い道のりを進んできました。
しかしスライドショーの他の部分、特に Mozilla と Opera が HTML5 のための権利に縛られない <video> 要素にコミットした部分については、まだ現在も関係があります:
- WHATWG を通して Opera と共同で <video> 要素に取り組んだこと
- すべてのブラウザが権利に縛られない Ogg Theora デコーダを採用する
- <audio> に Ogg Vorbis を採用する
- 他のフォーマットも利用可能にする
- DHTML プレーヤーコントロール
私たちは、言ったとおりのことを 実行しました。私たちは、強い抵抗にもかかわらず戦い、権利に縛られない HTML5 <video> の聖火が私たちの手に火傷を負わせたときでさえも、それを運び続けました。
私たちは、愚直な理想主義者と呼ばれました。大きな岩を高い丘の上へ転がそうとしている (どうやって?) と言われ、H.264 を背後に持つ勢力に打ち勝つことはできないだろうと言われました (その通りかもしれませんが、Mozilla はギブアップせず、特許保有者 に使用料を支払うことはありませんでした)。
そして 2009 年、Google が On2 社を買収 (2010 年に 完了) したことが アナウンス され、Opera と Mozilla に ホワイトナイト が現れました。
2010 年 5 月 の Google I/O において、Adobe は、近く公開する Flash に VP8 (WebM のすべてではない?) のサポートが含まれることを アナウンス しました。
2011 年 1 月 11 日 には、Google の Mike Jazayeri 氏が次の ブログ記事 を書きました:
… 私たちは、Chrome の HTML5 <video> サポートを、オープンな Chromium プロジェクトですでにサポートされているコーデックと矛盾が無いようにします。特に、WebM (VP8) と Theora ビデオコーデックをサポートし、他の高品質なオープンコーデックのサポートも追加したいと考えています。H.264 はビデオにおける重要な役割りを果たしていますが、私たちの目標はオープンな革新を可能にすることです。このコーデックのサポートを取り除くことにより、私たちのリソースがオープンなコーデック技術に直接投資されるでしょう。
これらの変更は 2 か月以内に行われるはずです…
この 3 日後に投稿された ブログ記事 では、Chrome が H.264 ビデオの再生を Flash に依存することが確認されました。
今日置かれている状況
2012 年 3 月 現在、Google と Adobe により約束された変更はまだ果たされていません。
その上、このような変更がデスクトップ版の Chrome でのみ行われ、Google の Android 版のモバイルブラウザでは行われないとしたら不適切です。なぜなら、典型的なサイトの作者は同じビデオを 2 回 (H.264 で 1 回、WebM で 1 回) もエンコードしないからです。彼らは、代わりに Flash のフォールバックを <video> タグ内の <object> タグに書きます。Opera の開発者向けドキュメント のコード例を紹介しましょう:
<video controls poster="video.jpg" width="854" height="480">
<source src="video.mp4" type="video/mp4">
<object type="application/x-shockwave-flash" data="player.swf"
width="854" height="504">
<param name="allowfullscreen" value="true">
<param name="allowscriptaccess" value="always">
<param name="flashvars" value="file=video.mp4">
<!--[if IE]><param name="movie" value="player.swf"><![endif]-->
<img src="video.jpg" width="854" height="480" alt="Video">
<p>Your browser can't play <a title="HTML5 video" href="https://developer.mozilla.org/ja/HTML/Element/Video">HTML5 video</a>.</p>
</object>
</video>
Opera のドキュメントでは、次のコードを含むことにより、権利に縛られないビデオの聖火が上手い具合に手渡されています。
<source src="video.webm" type="video/webm">
<video> コンテナ内の最初の <source> 子要素の後 (iOS WebKit のバグのため、MP4 の source を最初に置かなければならないと Opera のドキュメントに書かれています) ですが、ほとんどの作者は 2 回エンコードしたり 2 種類のバージョンのビデオを用意したりしません (あなたが推奨された方法を行っている場合は、このブログのコメントにスパムを投稿しないでください。あなたは典型的ではないのですから。YouTube も典型的ではなく、まだ完全にトランスコードされていません [1])。
もちろん、最終的なフォールバックコンテンツはビデオをダウンロードするリンクになり、ヘルパーアプリケーションで表示されます。しかし、これは「HTML5 video」ではなく、ユーザにとって都合の悪いものです (深いところではモバイルでも同じ)。Flash へのフォールバックは、HTML5 と混じり合い、残りの DHTML プレーバックコントロールによる表現の豊かさを失います。
それでは、私たちが今どこにいるのか、注意深く考えましょう。
Firefox は、Gecko の <video> 実装により、権利に縛られないフォーマットのみをサポートしています。私たちは、上記で紹介したように、作者が書き方を変えない限り Flash のフォールバックに依存します。次のことをよく考えてみてください: 私たち Mozilla は、Firefox ユーザのために、H.264 ビデオの再生を Flash に依存しています。
Adobe は、モバイル端末上の Flash の開発を止めることを アナウンス しました。
2011 年初頭に Google がブログ投稿したにも関わらず、デスクトップ版の Chrome はまだ <video> の H.264 コーデックをサポートしています。たとえサポートされなくなったとしても、デスクトップ版の Chrome には 独自に 追加した Flash が組み込まれており、上記のフォールバックにより、ほとんどすべてのユーザがビデオを再生できます。
モバイルの問題の大部分
Android が抱えるブラウザ (Android のすべてのバージョン) と Android 4 の Chrome は、すべて <video> の H.264 コーデックをサポートしています。Android をターゲットとする端末に限らず、それらの端末で H.264 のハードウェアデコードを行うのは、電力消費が最も効率的なデコード方法です。他に方法があるでしょうか? Google が Apple とモバイル端末上で競争しています。
Steve Jobs 氏は、モバイル端末上の Flash を “death-blow” と論じましたが、彼は 擁護 して H.264 への投資もしており、「すべてのビデオコーデックは特許で守られている」と 断言 しています。Apple は H.264 をサポートする多くのハードウェアを販売しています。これらのハードウェアは全般的に、特にビデオの再生品質において、ゴールドスタンダードです。
私の意見としては、Google が今年または来年中に、(Apple が完璧に再生している) H.264 コンテンツを再生できないモバイルブラウザを出荷しようとしていません。長期の中で何が起こるか分かりませんが、Mozilla はこのような出来事を待つことはできません。On2 を買収したのに WebM の推進が失敗して、結果的に Android 上で H.264 がサポートされているのは何故かと Google に尋ねてはいけません。この質問自体がその答えです。
たとえデスクトップ版の Chrome が H.264 のサポートを止めたとしても、Flash のフォールバックのおかげで、ほとんどの Chrome ユーザはそれに気付かないでしょう。また、Apple と Google に加え、Microsoft や他の誰もが、モバイル の市場シェアを増やそうとしています。そして、すべてのモバイル OS と端末で、H.264 をハードウェア実装することにより、H.264 をサポートしたものを出荷し続けるでしょう。なぜなら、これらは代替のソフトウェアデコーダよりも電力を消費しないからです。
これは、Web 上の HTML5 コンテンツ中の H.264 ビデオのグラフです (MeFeedia 調べ):
そしてこれは、モバイル端末からデスクトップ PC までの出荷量のグラフです (The Economist 調べ):
これらのグラフは、コンピュータのクラス形成に関するベルの法則 を示しています。ベルの法則は、コンピュータ端末の新しいクラスは他の古いものを置き換えると述べています。
この変動に直面して、Mozilla は、上記のユーザに他のすべての計画を推進し、「モバイルの Web」も含め、Web のオープン性と相互運用性、発展を守るため、Mozilla の 使命 を前進させなければなりません。
Mozilla が行っていること
私たちは、Boot to Gecko (B2G) を送り出すことに成功しました。そして、私たちの使命をモバイルユーザにもたらすため、新たな 改善された Android 版 Firefox のリリースを準備しています。
H.264 については何をすべきでしょうか?
Andreas Gal が、Android と B2G 上に OS ベースまたはハードウェアベースの H.264 デコード機能を持たせることを 提案 しています。この提案についての スレッド には 240 以上のメッセージが投稿されており、いくつかのオンラインメディアでも取り上げられています。
ある人は、誰か (Google? Adobe?) が変化を起こし、WebM を H.264 以上に前進させることを私たちは待ち続けるべきだと言います。
覚えておいてください。デスクトップでのみ <video> から H.264 を無くし、モバイルで無くさないのであれば何の意味もありません。なぜなら、Flash にフォールバックして再生されるからです。
他の人は、権利に縛られたビデオのために私たち自らが OS にデコーダを統合するよりも、いつまでも待ち続けるべきだと言います。
私は、人々のソフトウェア特許に対する非難を聞いたことがあります。私もソフトウェア特許が嫌いですが、モバイル端末上のソフトウェアは問題ですらありません。適正な専用の DSP ハードウェアは、ビットを受け入れてピクセルを追い出します。今や、H.264 デコーディングはハードウェア上で完全に生きています。
確かに、一部のハードウェアは WebM のデコーディングもサポートしており、サポート予定のものもあります。しかしその数はとても少なく、今年あるいは来年中に端末を出荷し、HTML5 <video> のために展開して消費者に届けるには遅すぎます。
私がニュースグループの スレッドに書いた ように、Mozilla はユーザと市場シェアを無視することはありません。私たちは、市場シェア だけ を心配することはありませんが、ユーザビリティと市場シェアを無視することは簡単に滅亡を招きます。ユーザなしでは私たちの使命は意味を成さず、私たちのオープン標準に与える影響も無くなってしまいます。
私たちには、組織維持のためにユーザを利用して利益を上げること (Firefox のユーザインターフェースに広告を置くなど) を禁止するという明らかな原則があります。しかし、私たちは、権利に縛られたフォーマットをプラグインが扱うことは拒否しません。私が見る限り、OS 依存の H.264 デコーディングは Flash 依存の H.264 デコーディングと異なりません。
私たちは、Firefox にお金を払うよう求めることはありません。 私たちは、ロイヤルティ料金を下流の再分配者に負担させません。私たちは、一部のデスクトップ OS で Flash にフォールバックさせ続けるかもしれません。デスクトップの (特に Windows XP 上の) H.264 についてより理解した時、さらに書くことにします。
私が知っているのは次のことです: H.264 は、モバイルの上で競争するために今は絶対に必要であること。私は、H.264 コンテンツを Android 版 Firefox や B2G で拒否できるとは思っていません。モバイルにシフトする時代を生き抜かねばなりません。
戦いに敗れるのは辛い経験です。私はこの苦い薬に甘い砂糖をまぶすようなことはしません。しかし、私たちがモバイルのイニシアチブを成功させるには、これを飲み込まなくてはなりません。モバイルでの失敗は、Mozilla を退歩させる見当違いの道へ引き渡すようなものです。だから、私は Andreas の提案を完全に支持しているのです。
私たちの使命は続く
私たちの 使命 である、Web 上のオープン性と革新、機会を宣伝することは、かつてないほど重要になっています。私が 2007 年の SXSW で言ったように、権利に縛られない video を開発して宣伝することが私たちの義務となっています。私たちは一つの戦いに敗れましたが、戦争はまだ続いています。私たちは常に、オープンと権利に縛られない標準を第一に推し進めます。
特に、私たちは WebRTC を権利に縛られないものにし続けるために戦わなければなりません。Mozilla と Opera でさえも、権利に縛られない HTML5 <video> のデフォルトフォーマットを義務付ける初期の小さな戦いに敗れました。しかし、WebRTC は、オープンで権利に縛られない Web のための長い戦争における新たな最前線です。
私たちは、Broadway.js を通してダウンロード可能な JavaScript デコーダを調査しています。しかし、バッテリーに優しいデコーディングのために並列計算をしたり JavaScript で専用のハードウェアを活用するのは全く間違っています。
私たちは長い戦争に勝てるでしょうか? 最後に勝利を見るのか、それはまだ分かりませんが、私たちは戦わなければなりません。特許には期限があります (GIF 画像に使われていた LZW 特許を憶えていますか?)。特許は無効と判断されることもあります (Netscape は、先行技術に基づく不快な特許無効化のため闘いました)。回避することもできます。特許法を改正することもできます。
Mozilla はこれまでも長く戦い続けてきました。私たちは決して諦めません。決して降伏することはありません。
/be
[1] YouTube 上の WebM vs. H.264 について、いくつかの注意点:
- Google は、多くても約半数のビデオを WebM にトランスコードしました。例えば、この YouTube 検索 で、”cat” は 1800 万件の検索結果があり、同じものを WebM ビデオ について検索すると、70 万 4 千件の検索結果が返ります。
- YouTube 上の WebM は、広告の無いビデオに限られており、それが YouTube 上で WebM が少ない原因となっています。何らかの利益を生み出すもの (人気のあるもの) には広告が付いるため、H.264 で配信されています。
- これらすべては、モバイルについて考える場合は議論の余地があります。モバイルには Flash が無く、WebM に対応したハードウェアもまだ無いので、Apple が市場をリードする位置にあります。