WebRTC と WebRTC SFU について

WebRTC とは

WebRTC は Web Real-Time Communication の略で、ブラウザどうしがプラグイン無しで直接通信し、映像や音声、データをリアルタイムにやりとりすることを可能にする技術です。WebRTC は通信を P2P で行うため、名前のとおりリアルタイム性の高い通信が可能です。その一方、配信者が複数の視聴者に対して映像や音声を配信する場合は、視聴者が増えるにつれて配信者の回線や端末にかかる負荷が高まるため、同時に配信できる視聴者の数には限界があります。
リアルタイムなコミュニケーションであれば、古くは電話など他の技術でも実現できますが、WebRTC は誰でも使えるブラウザだけで映像や音声のやり取りができる点が画期的と言えます。

WebRTC (P2P) の場合

WebRTC SFU とは

WebRTC SFU (Selective Forwarding Unit ) は P2P での通信とは異なり、音声や映像を「サーバ経由」で行う技術の一つです。
つまり、SFU というサーバが、配信者に代わって映像や音声を複数の視聴者に配信してくれる仕組みです。そのため視聴者が増えても配信者自身の端末に高い負荷がかかることはなく、一度に多くの視聴者へ映像や音声をリアルタイムに配信することができます。

WebRTC SFU の場合

その他にも「通信するユーザの認証を行う」「録画をする」といった、配信にともなう様々な機能をすべて SFU に担わせることができるため、クライアントの端末側では認証や録画に伴う負荷がかかることもありません。
WebRTC による通信をサーバが中継する技術は MCU (Multipoint Control Unit) もありますが、SFU は配信者が送信する映像を合成したり変換したりすることなく視聴者に「そのまま」配信するため、WebRTC のリアルタイム性を損なうことなく SFU 自身のリソースについても消費を抑えることが可能です。詳細は Sora 開発ログ でも記載しています。

memo

当社はこれまで、サーバとサーバの間に置いて様々な役割を担う中継サーバ (Proxy サーバ) を数多く開発してきました。その経験から WebRTC を使うサービスでも SFU というサーバを経由させるからこその強みがあると考え、自社で一から開発しています。ただ、当社にお問い合わせいただくお客様の中には、わざわざ SFU を導入しなくとも、P2P の通信で十分と思われる方もいらっしゃいます。あくまで当社の考える目安ですが、例えば配信対象が 3 名以下、とにかくコストを抑えたい、録画機能は必須ではないといった場合は、まずは P2P での通信をご提案しています。