
WebRTC(Web Real-Time Communication)は、ブラウザ同士で音声・映像・任意データをP2Pでやり取りするためのWeb標準APIおよびプロトコル群です。Googleが2011年にOSSとして公開、後にW3CとIETFで標準化されました。「プラグインなしのビデオ通話」「ブラウザだけで動く配信プラットフォーム」を実現する基盤として、Zoom、Google Meet、Discord等の通話アプリの土台にもなっています。
この記事の目次
- WebRTCの3つの主要API
- NAT越えとTURNサーバ
- WebRTCを使う代表的なサービス
- WebRTCの注意点
- まとめ
WebRTCの3つの主要API

WebRTCは大きく3つのJavaScript APIで構成されます。getUserMedia でカメラ・マイクへのアクセス、RTCPeerConnection でブラウザ間のP2P接続、RTCDataChannel で任意データの低遅延通信。これらを組み合わせて「ブラウザだけで動くビデオチャット」が実現します。
P2P通信を成立させるためにはお互いのIP・対応コーデック等を交換するシグナリングが必要で、そこはWebRTC仕様の範囲外。WebSocket等で自分で実装するか、Twilio・Agora・LiveKit等のマネージドサービスを使うのが定番です。
NAT越えとTURNサーバ

実際のインターネットでは家庭やオフィスがNATの内側にいるため、ブラウザ同士が直接つながれないケースが多々あります。WebRTCはSTUNサーバで自分の外向きIPを知り、ICE(Interactive Connectivity Establishment)で接続経路を探りますが、それでもダメな場合はTURNサーバが中継します。
TURNは中継トラフィックがそのまま回線に乗るためコストが大きく、ビジネス用途では運用コストの計画が重要です。Twilio Network Traversal Service、Cloudflare Calls、自前のcoturnなどがよく使われます。
WebRTCを使う代表的なサービス

Google Meet、Discord、Whereby、Jitsi Meet等の有名サービスがWebRTCを利用しています。Zoomは独自プロトコル中心ですが、Web版ではWebRTCも使用。「インストール不要のリアルタイム通信」は、コロナ禍を経てビジネス・教育・医療のあらゆる現場に浸透しました。
近年は LiveKit、Agora、Twilio Video などの開発者向けWebRTCインフラサービスが充実し、自社サービスにビデオ・音声通話を組み込むのも比較的容易になっています。
WebRTCの注意点

WebRTCは強力ですが、本格運用には注意点も多々あります。大人数会議でフルメッシュP2P接続だと帯域とCPUが爆発するため、SFU(Selective Forwarding Unit)やMCU(Multi-point Control Unit)といったメディアサーバの構築が必要になります。
また、ブラウザ間の実装差・コーデック対応の違いも依然として残り、クロスブラウザでの動作確認は丁寧に行う必要があります。「P2Pでブラウザ通話する」までは簡単ですが、ビジネス品質のサービスにするには相応のインフラ投資が必要、と覚えておきましょう。
まとめ
WebRTCはオンライン会議時代を支えた基盤技術で、Webブラウザの可能性をリアルタイム通信領域へ大きく拡張しました。ビデオ・音声・データ通信が必要なWebサービスに関わるなら、避けては通れない技術領域です。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント