WebRTC は W3C と IETF の標準になりました

WebRTC の歴史、アーキテクチャ、ユースケース、未来について簡単に説明します。

ホイブ・クラインハウト
Huib Kleinhout

ウェブ標準を定義するプロセスは、ブラウザ間の有用性、一貫性、互換性を確保するために時間のかかるプロセスです。現在、W3C と IETF は、パンデミック時に最も重要な標準の一つである WebRTC が完成したことを意味しています。

History

WebRTC は、ブラウザ、モバイルアプリ、デスクトップ アプリにリアルタイムの通信機能を提供するプラットフォームで、通常はビデオ通話に使用されます。このプラットフォームは、包括的な一連の技術と標準で構成されています。Google は 2009 年に、Adobe Flash やブラウザでは実行できないデスクトップ アプリケーションの代わりとして WebRTC を作成するというアイデアを開始しました。前世代のブラウザベースのサービスは、ライセンスが付与された独自のテクノロジー上に構築されていました。ハングアウトをはじめとする さまざまなサービスがこの技術で構築されていますその後、Google はこの技術のライセンスを取得している企業を買収し、オープンソースの WebRTC プロジェクトとして利用できるようにしました。このコードベースは Chrome に統合されており、WebRTC を使用する大部分のアプリケーションで使用されています。他のブラウザ ベンダーや業界リーダー(Mozilla、Microsoft、Cisco、Ericsson など)と協力して、W3C と IETF の両方で WebRTC の標準化が開始されました。2013 年、Mozilla と Google はブラウザ間のビデオ通話を実証しました。標準の進化に伴い、アーキテクチャに関する多くの議論により、ブラウザ間での実装の違いや、互換性や相互運用性が課題となっていました。これらの意見の相違のほとんどは、過去数年間で標準が確定するにつれ解決されました。WebRTC 仕様には、プラットフォーム テストのフルセットと互換性に対処するためのツールが付属しており、ブラウザはそれに応じて実装の大部分を適応させています。ウェブ デベロッパーは、さまざまなブラウザの実装や仕様の変更に合わせてサービスを継続的に導入しなければならなかった、困難な時代は終わりを迎えました。

アーキテクチャと機能

RTCPeerConnection API は WebRTC 仕様の中心部分です。RTCPeerConnection は、異なるエンドポイント上の 2 つのアプリケーションを接続し、ピアツーピア プロトコルを使用して通信します。PeerConnection API は、カメラとマイクにアクセスする getUserMedia と、画面コンテンツをキャプチャするために getDisplayMedia と緊密に連携します。WebRTC を使用すると、DataChannel を介して、音声コンテンツや動画コンテンツ、任意のバイナリデータを含むストリームを送受信できます。音声と動画を処理、エンコード、デコードするメディア機能は、WebRTC 実装の中核となります。WebRTC はさまざまなオーディオ コーデックをサポートしており、Opus は最も使用頻度が高く汎用性が高いのが特長です。WebRTC の実装では、Google の無料で使用できる VP8 動画コーデックと H.264 の両方を動画処理用にサポートする必要があります。WebRTC 接続は常に暗号化され、DTLS と SRTP の 2 つの既存のプロトコルを通じて実現されます。WebRTC は、動画コーデック(VP8、H264)、ネットワーク トラバーサル(ICE)、トランスポート(RTP、SCTP)、メディア記述プロトコル(SDP)など、既存の標準とテクノロジーに大きく依存しています。これは 50 以上の RFC にまとめられています。

ユースケース: 数ミリ秒の場合

WebRTC は、遠隔手術、システム モニタリング、自律走行車のリモート コントロール、バッファリングが不可能な UDP 上に構築された音声通話やビデオ通話など、緊急性の高いアプリケーションで広く使用されています。Google、Facebook、Cisco、RingCentral、Jitsi などの企業が提供するブラウザベースのビデオ通話サービスのほぼすべてで、WebRTC が使用されています。Google Stadia と NVIDIA GeForce NOW は、WebRTC を使用して、遅延を感じることなくゲームプレイのストリームをクラウドからウェブブラウザに送信します。

パンデミックによりビデオ通話のパフォーマンスが重視される

過去 1 年間で、ブラウザ内からのビデオ通話が増加したことにより、Chrome における WebRTC の使用は 100 倍に増加しました。パンデミックにより、ビデオ通話が多くの人々の生活に欠かせないものとなったことを認識し、ブラウザ ベンダーはビデオ通話が依存するテクノロジーの最適化を始めています。従業員と生徒が自宅で仕事や勉強を始めるようになると、大規模な会議やビデオ会議のビデオ エフェクトを必要とするリソースが一般的になり、これは特に重要でした。過去 1 年間で、Chrome のビデオ通話におけるバッテリーの消耗が最大 30% 向上しました。負荷の大きいシナリオに対応するための最適化が今後さらに強化される予定です。Mozilla、Apple、Microsoft はいずれも、パンデミックの中で WebRTC の実装において大幅な改善を行いました。特に、今では形式化された標準に準拠しています。

WebRTC の今後

WebRTC は現在 W3C 標準として完成していますが、改良は続いています。最大 50% の帯域幅を節約できる新しい動画コーデック AV1 が、WebRTC とウェブブラウザで利用できるようになりました。オープンソース コードベースを継続的に改善することで、遅延をさらに短縮し、ストリーミング可能な動画の品質を向上させることが期待されています。WebRTC NV は、新しいユースケースを可能にする補助 API を作成するイニシアチブを収集しています。これらは、スケーラブルな動画コーディングなどの既存の機能をより細かく制御するための既存の API の拡張と、下位レベルのコンポーネントへのアクセスを可能にする API で構成されています。後者は、高性能なカスタム WebAssembly コンポーネントを統合することで、ウェブ デベロッパーがより柔軟にイノベーションを実現します。5G ネットワークが誕生し、よりインタラクティブなサービスへの需要が高まっていることから、来年も WebRTC を基盤とするサービスの増加が見込まれます。