WebRTCとは?仕組みやネットワーク構成、メリットなどを解説!

WebRTCとは?仕組みやネットワーク構成、メリットなどを解説!

テレワークやおうち時間の充実を目的にライブ配信アプリの需要が高まっています。ライブ配信アプリの開発でよく利用される技術がWebRTCです。本記事では、WebRTCの仕組みについて解説します。

WebRTCの特徴は?ライブ配信の開発に役立つSDKの特徴をご紹介

ライブ配信アプリの開発でよく利用される技術がWebRTCやSDKです。

本資料では、WebRTCの配信の仕組みや特徴をはじめ、簡単にライブ配信機能を実現できるSDKなどをご紹介しています。

Agora-SDK-guide

WebRTCとは

WebRTCとは「web real time communication」の略称です。リアルタイムで映像や音声などの大容量のデジタルデータをブラウザでやりとりするための技術で、APIを利用します。

Web会議システムやボイスチャットアプリなど、クライアント(=パソコンやスマートフォンなどの端末)間で情報をリアルタイムにやりとりする必要があるアプリで利用される技術です。WebRTCの開発にはGoogleやApple、マイクロソフトなどの企業も参画しているため安心して利用できます。

WebRTCはオープンソースとして公開されており、誰でもソフトウェアの開発に利用できるのが特徴です。現在WebRTCはGoogle ChromeやSafariなど主要なブラウザのほとんどでサポートされています。

WebRTCの仕組み

WebRTCでは標準化されたプロトコル(規格)により、APIを使ってブラウザ間で音声・映像データをやりとりします。

このとき、クライアント間でやりとりする「P2P方式」と、クライアント間をサーバーが中継する「クライアント&サーバー方式」の2つのネットワーク構成を考慮することが必要です。

それぞれの仕組みの概要や、メリット/デメリットについて見てみましょう。

P2P方式

P2P方式(Peer to Peer)方式は、サーバーを介さずクライアント同士が直接通信する方式です。

端末間において余計な処理が発生しないため、少人数なら低遅延でデータのやりとりを実現できます。

一方で、参加人数が増えるほどデータの送信数が増加するのが欠点です。端末への負荷も大きくなり、通信速度も不安定になります。

クライアント&サーバー方式

クライアント&サーバー方式は、各クライアントの間に配置した処理用のサーバーを経由して通信する方式です。

P2P方式では、クライアントが多くなるに従って通信経路も爆発的に増えますが、クライアント&サーバー方式では各クライアントはサーバーとだけ通信を行います。

そのため、通信経路が少なくなり、各端末への負担も少ないのがメリットです。

クライアント&サーバー方式には大きく分けて「SFU方式」「MCU方式」の2つがあります。

SFU方式

SFU(Selective Forwarding Unit)方式は、SFUサーバー経由で通信する方式です。

SFUサーバーはクライアントからの送信データを受信側のクライアントにそのまま転送します。

送信を1本にまとめることができるため、接続数が増えても送信が安定するのがメリットです。一方で受信側では、サーバーの性能や負荷の大きさによって通信速度が不安定になることがあります。

MCU方式

MCU(Multipoint Control Unit)方式はMCUサーバー経由で通信を行う方式です。

MCUサーバーでは、クライアントから送信されたデータを処理して受信側のクライアントに送信する点がSFU方式と異なります。

MCUサーバーで行う処理とは、参加者の映像をリアルタイムで一画面にまとめて表示したり、クライアントの通信環境に合わせてビットレートを調整したりといったものです。

MCU方式では送受信とも安定しやすいですが、処理が必要になるためP2PやSFUと比較するとリアルタイム性で劣ります。また、サーバーへの負荷が大きいため、サーバーには高いスペックが要求されるのが特徴です。

他の配信技術と違い:CDN

音声・映像のデータを効率的にやりとりする方法にはCDNもあります。

CDNは「Contents Delivery Network」の略で、インターネット上に配置されたキャッシュサーバーのネットワークを利用してデータの送信を行います。

キャッシュサーバーは、元になるサーバー(オリジンサーバー)からデータのキャッシュをコピーし、オリジンサーバーに代わってデータを送信するサーバーです。CDNを使うと、オリジンサーバーの送信作業を分担して負荷を削減できます。

また、キャッシュサーバーは受信するクライアントに距離が近いものが選定されるため、通信の遅延も少なくなるのもメリットです。ただし、キャッシュの処理が必要になるため、遅延がまったく出ないわけではありません。

まとめ

WebRTCはAPIを利用してブラウザ間で音声・映像データをリアルタイムにやりとりするための技術です。WebRTCの開発プロジェクトには名だたる企業が参画しているため、Webの標準的な技術として将来にわたって安心して利用できるでしょう。

WebRTCを使うことで、リアルタイム・双方向型の動画配信やボイスチャット、ウォッチパーティなどさまざまなアプリを開発できますので、ぜひチャレンジしてみてください。

本記事がアプリ開発やアプリ・サービスの理解の参考になれば幸いです。

WebRTCの特徴は?ライブ配信の開発に役立つSDKの特徴をご紹介

ライブ配信アプリの開発でよく利用される技術がWebRTCやSDKです。

本資料では、WebRTCの配信の仕組みや特徴をはじめ、簡単にライブ配信機能を実現できるSDKなどをご紹介しています。

Agora-SDK-guide

山本脩太郎
著者情報山本脩太郎

1994年生まれ。山口県出身。 株式会社ベーシックに新卒入社。 インサイドセールスを経て、マーケティングメディアferretの編集部でインタビュー記事を中心とした企画・執筆などを担当。 同時期に数社のコンテンツマーケティング支援・インタビュー取材を経験。 2020年3月に株式会社ブイキューブに入社し、テレワークナビ編集長を務める。