WebRTC の歴史、アーキテクチャ、ユースケース、将来の展望について簡単に説明します。
ウェブ標準を定義するプロセスは、ブラウザ間での有用性、一貫性、互換性を確保するための長いプロセスです。本日、W3C と IETF は、パンデミック中に最も重要な標準の 1 つである WebRTC の完成を発表しました。
履歴
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 を作成するためのイニシアチブをまとめています。これらは、Scalable Video Coding などの既存の機能をより細かく制御できるようにする既存の API の拡張機能と、下位レベルのコンポーネントにアクセスできる API で構成されています。後者では、ウェブデベロッパーは高性能なカスタム WebAssembly コンポーネントを統合することで、より柔軟にイノベーションを起こすことができます。5G ネットワークの登場と、よりインタラクティブなサービスの需要の高まりにより、今後も WebRTC 上に構築されたサービスの増加が見込まれます。