ビデオを超えてインタラクティブでパーソナライズされたコンテンツへ:BBCはiPlayerをWebAssemblyで再構築する実験を行っている

Table of Contents

ビデオを超えてインタラクティブでパーソナライズされたコンテンツへ:BBCはiPlayerをWebAssemblyで再構築する実験を行っている

QCON BBC は、iPlayer キャッチアップ サービス クライアントを WebAssembly で再構築することを研究しています。

今週オンラインで開催されているQCon Plus開発者会議で講演したBBCの研究開発ソフトウェアエンジニア、ティム・ピアース氏は次のように述べた。「我々はWebAssemblyを使用して、将来の体験を再生できるiPlayerの実験版を構築しました。また、視聴者に普遍的なアクセスを提供するために、技術スタック全体でブラウザ外でWebAssemblyを使用する計画も紹介します。」

ピアース氏は、「ユニバーサルアクセス」は公共放送局としてのBBCの責務の一部であり、「視聴者全員が、自宅にどんなデバイスを持っているかに関わらず、あらゆる体験にアクセスできるようにすることを意味する。古いスマートフォンやスマートテレビを持っているかもしれない」と述べた。

こうした大規模な計画にもかかわらず、ピアース氏は「WebAssemblyを私たちが直面している課題への適用に向けた研究はまだ初期段階です。しかし、将来的にはWebAssemblyがBBCの放送チェーンに不可欠な要素になると確信しています」と述べた。

課題の一つは、BBCが単なるビデオを超え、「視聴者一人ひとりのニーズに合わせて番組内容を変化させる」オブジェクトベースメディアへと移行しようとしていることです。コンテンツ内の要素にセマンティックタグを付与するため、オブジェクトベースと呼ばれます。機能としては、話す司会者を手話司会者に置き換える機能、番組を短くしたり長くしたりする自動編集機能、お気に入りのサッカーチームに焦点を当てるなどコンテンツのパーソナライズ機能、そして「来週の旅行先を把握している」天気予報など、プライバシー擁護派の懸念材料となり得る機能も含まれる可能性があります。

  • ビデオを超えてインタラクティブでパーソナライズされたコンテンツへ:BBCはiPlayerをWebAssemblyで再構築する実験を行っている
  • BBCがAWSに切り替え、新しいウェブサイトアーキテクチャをサーバーレス化、観測者はHTMLについて不満を漏らす
  • Windows製品のアクティベーション – あるいは、ユーザーに電話でどれだけの番号を教えてもらえるか
  • ウェブの王者JavaScript、25周年おめでとう。今のところまだ王座にしがみついている。

「私たちは、拡張現実(AR)、仮想現実(VR)、分岐型ストーリー、マルチデバイス対応の没入型オーディオ・ビデオなど、オブジェクトベースメディアの利点を示す多様なコンテンツ体験を制作してきました。これらの将来の体験の多くはBBC Tasterウェブサイトで視聴できますが、iPlayerではまだ視聴できません」とピアース氏は述べた。

ピアス氏によると、現在、iPlayer には「iOS、Android、レスポンシブ Web、スマート TV など、さまざまなプラットフォーム向けの複数のコードベース、およびその他多数のレガシー コードベースがあります。クライアント アプリケーションは、完全に異なるプラットフォーム固有のテクノロジーとプログラミング言語で記述されています。」

wasm にコンパイルされたコンテンツがユニバーサル iPlayer でホストされる様子を示す図

Wasm にコンパイルされたコンテンツをユニバーサル iPlayer でホストする方法を示した図 (写真: BBC)

「シングルサービスプレイヤー」(SSP)は、従来のビデオ体験とゲームのような体験の両方に対応します。「これまでウェブアプリケーションでしか提供できなかったインタラクティブな体験を再生できるオブジェクトベースのメディアストレージエンジンを実装しました」とピアース氏は述べました。「また、リモートストリーミングの実験も開始しました。クラウドでハイエンドのグラフィック体験を実行し、ユーザー入力をネットワーク経由で送信し、その結果をビデオとしてストリーミングするのです。」このアプローチにより、ユーザーがハイエンドGPUを所有する必要がなくなる可能性があります。

WebAssemblyにより、BBCはC言語で記述されたSSPをEmscriptenツールチェーン経由でWeb用にコンパイルできるようになりました。これにより、開発者はLLVMコンパイラプロジェクトを使用してWebAssemblyをターゲットとして追加できます。Pearce氏によると、SSPはメディアソース拡張、JavaScript Fetch API、WebSocket、WebGL、Canvas2Dなどのブラウザ機能を使用して、Web上で「複数の方法」でレンダリングします。また、このプロジェクトでは、EmscriptenがサポートするマルチメディアAPIへのアクセスにSDL(Simple DirectMedia Layer)も使用しています。

「Emscriptenツールチェーンは、WebAssemblyモジュールをブートストラップし、これらのWeb APIへのアクセスを可能にするJavaScriptグルーコードを生成します」と彼は説明した。「WebAssemblyを使用する利点の一つは、SSPがすべてのブラウザで同一に見え、ネイティブアプリケーションと同一であることです。これは、すべてのユーザーインターフェースコンポーネント、レイアウト、ビジネスロジックがWebAssemblyモジュール内にあるためです。」これにより、ブラウザ間でのCSS実装などの差異を回避できます。

BBCの研究者たちは、ブラウザ外でのWebAssemblyの利用を調査することにしました。「ランチャー、アプリケーション、そして個々のコンテンツ体験を、Webだけでなくネイティブアプリケーションでも動作するWebAssemblyモジュールとしてパッケージ化できないかと考えました」とピアース氏は語ります。彼らが見つけた解決策は、「新しいC++アプリケーションにWebAssemblyランタイムを埋め込む」ことでした。具体的には、「Bytecode AllianceのWasmtimeランタイムを使用しています」と彼は言います。これはRustで記述されており、詳細はこちらをご覧ください。

なぜWebAssemblyを選んだのか?クロスプラットフォームコードを実現する無数の方法の一つではなく、BBCが独自のUIを開発し、クロスプラットフォームGUIフレームワークの必要性を回避したという点がその理由の一つだ。「WebAssemblyをユニバーサルバイナリとしてターゲットにしたいのです。最大のメリットは、サンドボックス化です」とピアース氏は語る。彼はこれを、iPlayerでホストできるコンテンツの標準への道筋だと見ている。「放送にはフレームレートやコーデックといった標準があり、WebAssemblyはインタラクティブコンテンツでそれを実現する手段だと考えています」と彼は語る。「WebAssemblyの初期設計は、まさにそのようなプラグインモデルに非常に適しています。」

ピアース氏は、BBCが既にコンテンツ制作者向けのデザイン標準を提供することを目的としたグローバル・エクスペリエンス言語(GEL)を策定していることを指摘しました。また、今年初めに投稿されたWebAssemblyで書かれたiPlayerの詳細についても言及しました。®

Discover More