videocalling
Illustration of SFU(選択的転送ユニット) in video calling

SFU(選択的転送ユニット)

アーキテクチャ

参加者間でストリームを効率的に転送するサーバーアーキテクチャ。

SFUとは?

SFU(Selective Forwarding Unit)は、ビデオおよび音声ストリームのスマートルーターとして機能するメディアサーバーアーキテクチャです。参加者が互いにストリームを直接送信するP2P接続や、すべてのストリームをデコードしてミックスするMCUサーバーとは異なり、SFUは各参加者からストリームを受信し、変更せずに他の参加者に選択的に転送します。

2025年時点で、SFUはWebRTCアプリケーションのデファクトスタンダードアーキテクチャとなっており、Zoom、Google Meet、Microsoft Teams、Discordなど、事実上すべての主要なビデオ会議プラットフォームで使用されています。

主な技術的特徴

  • トランスコーディングなし:SFUはビデオストリームをデコード・再エンコードせず、エンコードされたパケットを単に転送。サーバー側のCPU使用率が非常に低い
  • サイマルキャストサポート:各参加者が異なる品質レベルで複数バージョンのビデオを送信し、SFUが各受信者に最適な品質を選択
  • アダプティブビットレート:各参加者のネットワーク状況をリアルタイムで監視し、自動的に品質を調整

SFUの利点

  • 優れたスケーラビリティ:小規模会議から大規模カンファレンスまで美しくスケール
  • 低いアップロード帯域幅:参加者はSFUに1度だけストリームをアップロード(P2Pの9分の1)
  • 低レイテンシ:デコード/エンコードしないため、処理遅延は最小限(通常50-100ms追加)
  • コスト効率:MCUの高価なCPUリソースと比較して、SFUは運用コストが比較的安い

SFU vs P2P vs MCU

  • P2P:1対1または超小規模グループ(2-4人)に最適。コストゼロ、最大プライバシー
  • SFU:ほとんどの用途(5-100人以上)に最適。コスト/パフォーマンスのバランスが良い、業界標準
  • MCU:超大規模ブロードキャスト、レガシーシステム、帯域幅保証に最適。高コスト、追加レイテンシ

代表的なSFU実装

  • mediasoup:強力なNode.js SFU、高い柔軟性とパフォーマンス
  • Janus:機能豊富なCベースSFU、極めて効率的
  • LiveKit:モダンなGoベースSFU、優れた開発者エクスペリエンス
  • Cloudflare Calls:グローバルエッジ展開のマネージドSFUサービス