WebRTCがW3CとIETFの正式な標準仕様になったと発表
TL;DR
WebRTCがW3CとIETFの正式な標準仕様に
WebRTCはビデオと音声のリアルタイムコミュニケーション技術で、2009年Googleによって開発が始まった。現在は数多くのサービスに使用されており、パンデミックの影響で使用率が高くなっている
標準仕様になったとはいえ、まだ改善の余地が多い。これからの対応にも期待
ウェブ標準を定義するプロセスは、ブラウザ間の有用性、一貫性、互換性を保証するための長いプロセスである。2009年登場から約12年の歳月を経て、WebRTCが正式な標準仕様になったとW3CとIETFが同時に発表した。 WebRTCは、ブラウザ、モバイルアプリ、デスクトップアプリにリアルタイム通信機能を提供するプラットフォームで、一般的にはビデオチャットやボイスチャットなどに使用されることが多い。WebRTCは、2009年Adobe Flashやブラウザで実行できないデスクトップアプリケーションに代わるものとしてGoogleが開発をし始めたものである。前世代のブラウザベースの製品、例えばFlashベースの製品は堅いライセンスをベースに独自技術の上に構築されていた。Hangoutsをはじめ、さまざまな製品がこの技術で構築されていた。その後、Googleはこの技術をライセンスしていた企業を買収し、オープンソースのWebRTCプロジェクトとして利用できるようにした。このコードベースはChromeに統合され、WebRTCを使用するアプリケーションの大半で使用されている。他のブラウザベンダーや、Mozilla、Microsoft、Cisco、Ericssonなどの業界のリーダーとともに、W3CとIETFの両方でWebRTCの標準化に向けて動き出した。2013 年には、MozillaとGoogleがブラウザ間のビデオ通話を実演した。標準の進化を通して、多くのアーキテクチャの議論がブラウザ間での実装の違いにつながり、互換性や相互運用性が問われていた。これらの意見の相違のほとんどは、この数年で規格が最終的に確定したため、最終的には決着がついた。WebRTC仕様は現在、互換性に対処するためのプラットフォーム・テストとツールのフルセットを伴っており、ブラウザはそれに応じて実装の大部分を適応させている。これにより、ウェブ開発者は、さまざまなブラウザの実装や仕様変更に対応したサービスを継続的に採用しなければならなかった困難な時代に終止符が打たれたとも言えるであろう。
WebRTCには下記の4つのコンポーネントが仕様の中心的な部分である。
RTCPeerConnection
getUserMedia
getDisplayMedia
DataChannel
RTCPeerConnectionは、P2Pプロトコルを用いて通信するために、異なるエンドポイント上の2つのアプリケーションを接続することを担う。PeerConnection APIは、カメラやマイクにアクセスするためのgetUserMediaや、画面のコンテンツをキャプチャするためのgetDisplayMediaと密接に相互作用する。また、DataChannelを使うことによってオーディオやビデオコンテンツ、任意のバイナリデータを含むストリームを送受信することができる。オーディオとビデオを処理、エンコード、デコードするためのメディア機能は、あらゆるWebRTC実装の中核を提供する。
WebRTCはさまざまなオーディオコーデックをサポートしているが、中でもOpusは最も使用されている汎用性の高いコーデックだ。WebRTCの実装には、Googleが開発した無償で使用可能なVP8ビデオコーデックとビデオ処理用のH.264の両方をサポートする必要があり、WebRTCの接続部分は常に暗号化状態を維持しなければならないため、DTLSとSRTPの対応も必要だ。言い換えると、WebRTCは独自の技術で構成されているのではなく、ビデオコーデック(VP8,H264)、ネットワークトラバーサル(ICE)、トランスポート(RTP,SCTP)、メディア記述プロトコル(SDP)など、既存の標準や技術に大きく依存している(50以上のRFCと関連している)。
WebRTCはWeb上でのビデオチャットやゲーム実況サービスなどのカジュアルなサービスから遠隔手術、システム監視、自律走行車の遠隔制御などのタイムクリティカルなアプリケーションや、バッファリングが不可能なUDP上に構築された音声通話やビデオ通話で広く使用されている。Google、Facebook、Cisco、RingCentral、JitsiなどWebRTCの初期からサービスを提供している企業はもちろん最近ではHangoutsやSlackなどの企業のほぼすべてのサービスのビデオ通話サービスは、WebRTCを使用している。Google StadiaとNVIDIA GeForce NOWはWebRTCを使用して、ゲームプレイのストリームをクラウドからWebブラウザに知覚可能な遅延なしに取得している。
過去1年間で、ブラウザ内からのビデオ通話の増加により、WebRTCはChromeでの利用が100倍に増加している。ビデオ通話がパンデミック(covid-19)の間、多くの人々の生活の基本となっていることを認識し、ブラウザ ベンダーは、ビデオ通話が依存する技術の最適化に着手した。これは、社員や学生が自宅で仕事や勉強をするようになったときに、リソースを必要とする大規模な会議やビデオ会議でのビデオ効果が一般的になったため、特に重要なことだった。過去1年間で、Chromeはビデオ通話のバッテリーの持ちを最大30%向上させ、直近の計画では使用量が多い場合にはさらに最適化が行われる予定である。Mozilla、Apple、Microsoftはいずれも、パンデミックの影響でWebRTCの実装に大幅な改善を行い、特に現在では正式な標準規格に準拠していることを確認している。
WebRTCがW3C標準として完成したとはいえ、改善は続いている。帯域幅を最大50%節約できる新しいビデオコーデックAV1が、WebRTCやWebブラウザで利用できるようになりつつある。オープンソースコードベースの継続的な改善により、遅延をさらに減らし、ストリーミング可能なビデオの品質を向上させることが期待されている。WebRTC NVは、新しいユースケースを可能にするための補助的なAPIを作成するための新しいアイディアや計画などを集めている。これらは、スケーラブル・ビデオ・コーディングのような既存の機能をより制御できるようにするための既存のAPIの拡張機能と、低レベルのコンポーネントにアクセスできるようにするためのAPIから構成されています。後者は、高性能なカスタムWebAssemblyコンポーネントを統合することで、Web開発者に革新的な技術革新を行うための柔軟性を与える。5Gネットワークの出現と、よりインタラクティブなサービスへの需要により、WebRTCの上に構築されたサービスが今後も増えていくことが予想されている。
参考