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

WebRTC の歴史、アーキテクチャ、ユースケース、今後についての概要。

Huib Kleinhout
Huib Kleinhout

ウェブ標準を定義するプロセスは、ブラウザ間で有用性、整合性、互換性を確保するために時間のかかるプロセスです。今日、W3C と IETF は、パンデミックの最中で最も重要な標準の一つである WebRTC の完成を記念したものです。

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

アーキテクチャと機能

RTCPeerConnection API は WebRTC 仕様の中心部分です。RTCPeerConnection は、異なるエンドポイント上の 2 つのアプリケーションを接続し、ピアツーピア プロトコルで通信を行います。PeerConnection API は、カメラやマイクへのアクセスについては getUserMedia と、画面コンテンツのキャプチャについては getDisplayMedia と緊密に連携します。WebRTC を使用すると、音声や動画コンテンツ、任意のバイナリデータを含むストリームを、DataChannel を介して送受信できます。音声と動画の処理、エンコード、デコードを行うメディア機能は、WebRTC 実装の中核となるものです。WebRTC はさまざまなオーディオ コーデックをサポートしており、Opus は最も使用頻度が高く、用途に優れています。Google の無料で使用できる VP8 動画コーデックと動画処理用の H.264 の両方をサポートするには、WebRTC 実装が必要です。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 を作成するイニシアチブを集めています。これらは、Scalable Video Coding などの既存の機能をより詳細に制御するための既存の API の拡張機能と、下位レベルのコンポーネントにアクセスできる API で構成されます。後者は、ウェブ デベロッパーが高パフォーマンスのカスタム WebAssembly コンポーネントを統合することで、より柔軟にイノベーションを推進できます。5G ネットワークの発展と、よりインタラクティブなサービスの需要により、今後 1 年間は WebRTC を基盤とするサービスが増加し続けることが予想されます。