ホームページ  >  記事  >  ウェブフロントエンド  >  WebRTC SFU: 完全なガイド。

WebRTC SFU: 完全なガイド。

PHPz
PHPzオリジナル
2024-07-19 14:32:17923ブラウズ

WebRTC SFU (Selective Forwarding Unit) とは何ですか?

選択的転送ユニットまたは SFU

SFU は、マルチパーティのビデオ通話、音声通話、データ転送を行うために webrtc で使用されるサーバーベースのアーキテクチャです。

SFU は、複数のデバイスからメディア ストリームを受信し、どのストリームをどのデバイスに送信する必要があるかを決定するデバイス間の仲介者として機能します。

WebRTC とは何ですか?

WebRTC はオープンソース プロジェクトであり、これを使用すると、デバイス間のリアルタイムのオーディオ、ビデオ、データ転送が可能になります

WebRTC は、Web ブラウザーだけでなくアプリ内でも実行されます。WebRTC は、ほとんどすべての最新のブラウザーでサポートされており、ビデオ、オーディオ通信の標準です

Image description

SFU または選択的転送ユニットはどのように機能しますか

ここでは、SFU がどのように機能するかについてのステップバイステップのガイドを示します

ステップ 1 クライアント接続とメディア キャプチャ

  1. 参加者の接続

各参加者はまず SFU との接続を確立します。このプロセスには、セッションの説明が交換されるシグナリング サーバーが含まれます。

セッションの説明には、セッションを確立するために使用される重要な情報が含まれています。

2.メディア ストリーム キャプチャ

クライアント側では、マイクからの音声、カメラからのビデオなど、メディア ストリームが参加者デバイスからキャプチャされます。次のステップで、これらのストリームは SFU に送信されます

ステップ 2: SFU へのストリーム送信

  1. ストリームのエンコードと送信: クライアント デバイスは、ビデオとオーディオのコーデックを使用してメディア ストリームをエンコードし、SFU に送信します

これは、暗号化が必要な場合は RTP プロトコルまたは SRTP プロトコルを使用して行われます

2. SFU による受領書

SFU または選択的転送ユニットは、接続された各デバイスから個別のストリームを受信し、デバイスごとに個別の受信ストリームを維持します。

ステップ 3 SFU でのストリーム処理

  1. 混合禁止

MCU に準拠した SFU では、すべてのストリームが互いに分離されており、混合はありません

2.選択的転送

SFU は、SFU に接続されている各デバイスから個別のストリームを受信し、SFU は参加者ごとに個別のストリームを維持します

ステップ 4: SFU によるストリーム配信

  1. 適応:

ストリームをユーザーに転送する前に、SFU は、さまざまな品質のビデオ コーデックの選択や、異なるサイマルキャスト ストリーム間の選択など、ストリームに対して特定の適応を実行します。

これらは、受信クライアントの CPU と帯域幅の機能に基づいています

2*。ストリームの転送*

SFU は、各クライアントが要求しているストリームを転送します。

クライアント デバイスは、SFU から複数のストリームを受信したり、ビデオおよびオーディオ データの単一ストリームを受信したりする可能性があります

  1. RTP または SRTP パケット

メディアは RTP または SRTP パケットで送信されます。クライアント デバイスが異なれば CPU や帯域幅の制限も異なる可能性があるためです。

SFU は、デバイス上でストリームがスムーズに流れ、ビデオ品質がスムーズになるように、ストリーム パケットが流れるように最適化します

ステップ 5 クライアントの受信と表示

  1. デコード: 各クライアントは SFU から RTP ストリームを受信し、ストリームをデコードして画面にレンダリングします

  2. 同期: オーディオとビデオの同期は重要であり、クライアント レベルで処理されます。クライアントは、RTP ストリームからのタイムスタンプとシーケンス番号を使用して、ビデオとオーディオの再生をスムーズに同期します

SFU 対 P2P 対 MCU

このセクションでは、選択的転送ユニット、ピアツーピアまたは P2p である SFU と、マルチポイント制御ユニットである MCU の区別について考えてみましょう

1.  選択的転送ユニット SFU

選択的転送: SFU は複数のストリームを受信し、ストリームのコンテンツを変更せずにストリームを選択的にデバイスに転送します

サーバーベース: SFU はサーバーに依存しますが、サーバーは蒸気のルーティングに使用され、他の目的には使用されません。

利点:

スケーラビリティ: SFU は拡張性が高く、どのストリームが任意のクライアント デバイスに送信されるかを管理することで、単一のクライアント デバイスの負荷を軽減します

低い処理要件: SFU はストリームを転送するだけで、ストリーム上での処理を行わないため、レイテンシと CPU 処理要件が軽減されます

ストリームの柔軟性:

クライアント デバイスは、複数のストリームを受信することも、1 つのストリームのみを受信することも、ストリームをまったく受信しないこともできます。すべては、クライアント デバイスがどのストリームを要求し、それを画面に表示する必要があるかによって異なります。

欠点:

帯域幅集中: 各ストリームはサーバーによって受信され、SFU にはすべてのストリームを処理するための CPU と帯域幅が必要であるため、SFU はサーバー側で帯域幅を集中的に使用します

2.ピアツーピア P2P

P2p アーキテクチャでは、各参加者は中間サーバーを必要とせずに別の参加者に直接接続します

ただし、多くの場合、NAT トラバーサルと NAT を介したストリームの中継には STUN サーバーまたは TURN サーバーが必要です

ターン サーバーをお探しの場合は、従量制 TURN サーバー サービス プロバイダー

を検討してください。

Metered は、世界中に TURN サーバーを備えたグローバル TURN サーバー プロバイダーであり、最小の遅延と最高のパフォーマンスを実現するために TURN サーバーに最も近いユーザーに接続します

欠点:

会議に複数のデバイスが存在する場合、各参加者のデバイスは複数のストリームを処理する必要があります。

これは、すべてのクライアント デバイスで CPU と帯域幅を大量に消費します。このために、従量制 SFU

を検討できます。

多点制御ユニット

MCU はすべての受信ストリームを混合し、多数のストリームから 1 つまたはいくつかのストリームを作成し、それをすべてのクライアントに送信します

MCU はサーバー上で多くの CPU 計算とリソースを必要とし、ストリーム送信時に遅延も発生しますが、利点が 1 つあり、クライアント デバイスの計算と帯域幅の要件を大幅に削減できます

昔、モバイル機器がかなり遅く、ネットワークインフラも悪かった当時、MCU は非常に理にかなっていました

しかし、最近ではテクノロジーの進歩により、遅延が増加し、ビデオ配信が遅くなり、不快な体験が生じる可能性があります。

WebRTC における SFU の利点

WebRTC における SFU の利点をいくつか紹介します

1.スケーラビリティ

WebRTC における SFU の最も重要な利点はスケーラビリティです。 P2P ビデオ通話をスケーリングすることもできますが、メッシュを作成してスケーリングするのは困難です

  • クライアント帯域幅の削減

ピア 2 ピア形式で複数のクライアント デバイスとビデオ通話をしている場合、各クライアントは自分のストリームを他のすべてのクライアントに送信する必要があり、その逆も同様です。

これらの理由で、各クライアントの帯域幅と CPU の要件が飛躍的に増加します

非常に高い帯域幅と CPU コンピューティングの能力を備えていない一部のクライアントは、ビデオ通話に苦労します

2.品質管理の向上

SFU は、どのストリームをどのクライアントに送信するかについてインテリジェントな決定を下すことができるため、ビデオの品質を向上させることができます

  • ストリーム適応

SFU は、受信デバイスの帯域幅と CPU 能力に応じてストリームを調整できます。

クライアント デバイスの帯域幅が低い場合、SFU は低品質のストリームをその特定のデバイスに送信できるため、ビデオはバッファリングせずにスムーズに実行されます

3.クライアントの処理負荷の軽減

SFU はストリーム管理に必要なデータ処理の大部分を処理し、クライアント デバイス自体はすべての重労働から解放されます

これは、モバイルデバイスや、CPU パワーなどの処理能力が低いデバイスに役立ちます

  • CPU への負荷が軽減されます

クライアント デバイスは、処理のために SFU に送信される複数のストリームをエンコードおよびデコードする必要がなく、代わりに SFU がこれを行います

したがって、これらのデバイスはバッテリー消費が少なくなり、冷却に必要な CPU 時間が短縮されます

  • ユーザーエクスペリエンス

CPU 処理の削減により、インターフェイスがよりスムーズになり、デバイスが冷却され、全体的なユーザー エクスペリエンスが向上します

4.メディア処理の柔軟性

SFU を使用すると、メディア ストリームの処理方法や参加者のクライアント デバイスでのビデオの表示方法について、より柔軟な対応が可能になります

  • 個別ストリーム制御

クライアントまたは会議の参加者は、どのストリームをダウンロードするか、またストリームを画面にどのように表示するかを選択できます

さまざまな品質のストリームをダウンロードしたり、SFU がクライアント デバイスの帯域幅容量と CPU 能力に基づいて最適なストリームを選択するように自動的にダウンロードしたりする機能もあります

  • 高度な機能のサポート

SFU または選択的転送ユニットは、次のようなさまざまな高度な機能をサポートします

サイマルキャスト (単一のビデオ ストリームの複数の品質を送信する機能)、スケーラブルなビデオ コーデックなど

5.柔軟性とセキュリティの強化

SFU を通過するすべてのストリームはエンドツーエンドで暗号化されており、SFU 以外の誰もどのストリームが通過しているのかを知りません

DTLS や SRTP などの暗号化プロトコルはエンドツーエンドの暗号化に使用されます

SFU はインタラクションをログに記録できますが、コンプライアンスの目的でストリームを傍受することもできません。

Image description

従量制の TURN サーバー

  1. API: 強力な API でサーバー管理を行います。 API を介して認証情報の追加/削除、API を介してユーザーごとの認証情報とユーザー指標を取得、API を介して認証情報を有効/無効にする、API を介して日付ごとの使用状況データを取得するなどの操作を行うことができます。

  2. グローバル地理位置ターゲティング: トラフィックを最も近いサーバーに自動的に送信し、遅延を最小限に抑え、最高品質のパフォーマンスを実現します。世界中のどこでも遅延が 50 ミリ秒未満

  3. 世界のすべての地域のサーバー: トロント、マイアミ、サンフランシスコ、アムステルダム、ロンドン、フランクフルト、バンガロール、シンガポール、シドニー、ソウル、ダラス、ニューヨーク

  4. 低遅延: 世界中のどこでも遅延が 50 ミリ秒未満です。

  5. 費用対効果の高い: 帯域幅とボリュームの割引が可能な従量課金制の料金設定。

  6. 簡単な管理: 使用状況ログ、アカウントがしきい値制限に達したときの電子メール、請求記録、電子メールと電話によるサポートを取得します。

  7. 準拠規格: UDP、TCP、TLS、および DTLS で RFC 5389、5769、5780、5766、6062、6156、5245、5768、6336、6544、5928 に準拠します。

  8. マルチテナンシー: 複数の資格情報を作成し、顧客ごとまたは異なるアプリごとに使用を分離します。使用状況ログ、請求記録、およびしきい値アラートを取得します。

  9. エンタープライズの信頼性: SLA による 99.999% の稼働時間。

  10. エンタープライズ規模: 同時トラフィックまたは合計トラフィックに制限はありません。従量制の TURN サーバーはエンタープライズ スケーラビリティを提供します

  11. 5 GB/月 無料: 無料プランでは毎月 5 GB の TURN サーバーを無料で利用できます

  12. ポート 80 および 443 で実行

  13. ディープ パケット インスペクション ファイアウォールを介した接続を可能にする TURNS + SSL をサポートします。

  14. TCP と UDP の両方をサポート

  15. 無料無制限スタン

以上がWebRTC SFU: 完全なガイド。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。