TL; DR-はい。
WebRTCとブラウザ間の呼び出しに関するイスラエルの同僚の次の記事は、Habr用に翻訳されています。 Voximplantでは、サーバーを介してビデオ会議を開催するための独自のソリューションを開発していますが、それだけです。 ピアツーピアは良いことですが、すべての場合に機能するとは限りません。 また、多くの異なるWebブラウザーとモバイルデバイスがサーバーに接続され、それぞれが独自のインターネット接続と独自のビデオスタック実装を備えている場合、サーバーを介して適切なビデオ会議を行うことはそれほど容易ではありません。 しばらくして、私たちの決定の内部について話します。そして今、この言葉はbloggeek.meの作成者であるTsakhi Levent-Levyに伝えられています。
1対多の翻訳:メディアサーバーは必要ですか?
それがまさに今週のサポートチャットで受け取った質問です。 答えは簡単でした-はい。
しかし、その後、私は予想していなかった質問を受けました:
なんで?
驚きました。 答えがわからないからではなく、チャットに収まるほど簡単に答える方法がわからないからです。 また、これは非常に単純な質問ではないと思います。
簡単な答えは、リソースの制限と、これらのリソースのほとんどを制御しないという事実です。
上限
2つのブラウザーを直接接続する場合は常に、ピアツーピア接続を使用する必要があります。
Chrome 65には、ガベージコレクターが使用するこのような接続の上限があります。 Chromeでは、500を超える並列p2p接続を作成できません。
500はたくさんです。 10を超える並列接続を使用する場合は、彼が何をしているかを知っている人でなければなりません(そして、私のブログは必要ありません)。 50を超える接続を作成することは、覚えているユースケースにとっては悪い考えです。
リソースが限られていることを理解してください。 何かが無料でブラウザに組み込まれている場合、それはあなたの一部のコストと深刻な努力に関連付けられないという意味ではありません 。
ビットレート、速度、およびストリーム
これがおそらく、WebRTCや他のテクノロジーでブロードキャストできない主な理由です(以下、「ブロードキャスト」。ノート翻訳者)。
WebRTCを使用した複雑なケースを目指しています。 メディアの処理は困難です。 リアルタイム処理はさらに困難です。
低VGA解像度のブロードキャストが必要だとします。 500 Kb / sのビットレートがこれに良い結果を与えることを確認しました。
ストリームを10人に転送する場合はどうなりますか?
ストリームを10人にブロードキャストするには、5 Mb / sの発信ビットレートが必要です。
ADSL接続を使用している場合、1〜3 Mb / sの領域の発信ビットレートがあるため、10人でストリームをブロードキャストすることはできません。
ほとんどの場合、ブロードキャストの実行方法を制御することはできません。 ADSL経由? Wifi? 接続不良の3Gネットワーク? 放送に連絡するとすぐに、そのような仮定をする義務があります。
そして、これは10人の視聴者のみです。 しかし、100人の視聴者が必要な場合はどうでしょうか? 千人? 百万?
メディアサーバーの場合、ネットワーク接続、サーバーに使用するハードウェアなどはすでに決定しています。 メディアサーバーをカスケード接続して、ブロードキャストを拡張できます。 私たちは状況をはるかにコントロールしています。
WebRTCストリームをブロードキャストするには、メディアサーバーが必要です。
均一性
ただし、グループコールの実際の問題は、ブロードキャストに最も関連しています。
ブロードキャストにWebRTCを使用する場合、多くの決定がメディアサーバーに委ねられます。 たとえば、ある視聴者の接続状態が悪い場合、これによりパケットが失われ、メディアサーバーはそのことを認識します。 この場合、彼は何をすべきですか?
簡単な答えはありませんが、何をするかの選択があります。
- 放送局に新しいIフレームを送信するよう依頼します。これは、すべての視聴者に影響を与え、近い将来帯域幅の使用を増やします(これはメディアサーバーには望ましくありません)。
- パケット損失を中和するためにビットレートとビデオ品質を下げるように放送局に依頼してください-これは、接続不良の人だけでなく、すべての視聴者に影響します。
- パケット損失を無視します 「公益」のために1人の観客を「犠牲にする」(他の観客)。
- SimulcastまたはSVCを使用して、視聴者を低品質で「レベル」の下に配置します。 これは他の視聴者には影響しません。
これのほとんどは、ブラウザでは実行できません。 問題のあるユーザーの場合、ブラウザーは他の視聴者と同じストリームを使用しようとします。 また、ブラウザは、多数の視聴者の帯域幅を適切に評価できません。 ブラウザがこのために設計されていないという理由だけで。
メディアサーバーが必要です
ほとんどの場合、何らかの理由でメディアサーバーが必要になります。
ブロードキャストを行う場合、メディアサーバーが必要です。 そして、はい、Googleはあなたにそのような無料サービスや少なくとも放送を目的としたオープンソースソリューションを見つけません。
これはすべて「不可能」を意味するものではありません。目標を達成するために一生懸命努力しなければならないという兆候にすぎません。