1

Kurento サーバーのクラスターを構築して、少数 (約 10) のビデオおよびオーディオ ストリームを多数の視聴者 (最大 1000 レシーバー) にストリーミングできるようにするタスクがあります。そうそう、合計10,000ストリーム。明らかに、どの種類のサーバーでも単一の Kurento インスタンスではそれほど処理できないため、クラスタリングが必要です。

これが私がやろうとしていることです:

1) プレゼンターから「マスター」サーバーへの接続を受け入れます。パイプラインが作成され、WebRtcEndpoint が作成され、プレゼンター クライアントからの SDP オファーが供給され、SDP 回答がそれに配信され、MediaStateChanged にサブスクライブしてストリームの開始を待ちます。イベント。

2) それが発生した場合、いくつかの RtpEndpoints を作成し、それらのそれぞれにフィードします。手作業でハッキングされた SDP オファーは次のようになります。

v=0
o=- 0 0 IN IP4 $slave_ip
s= 
c=IN IP4 $slave_ip
t=0 0 
m=video $slave_port RTP/AVP 100 
a=rtpmap:100 H264/90000
a=recvonly

各スレーブサーバーのIPを毎回置換し、Kurentoに割り当てられた範囲外の空きUDPポートをいくつか使用します。そのエンドポイントをプレゼンターの WebRtcEndpoint に接続します。

3) ????? (ステップ2でRtpEndpointによって送信されたストリームを受信するスレーブサーバーにRtpEndpointを作成する必要があります-しかし、どのように?どのSDPにフィードするのですか?おそらく、ステップ2でsdpAnswerを受信し、スレーブKurentoでSDPオファーとして再利用します?不明)

4) ラウンド ロビン負荷分散アルゴリズムによって各スレーブ サーバーにビューアーを接続し、RtpEndpoint を受信 WebRtcEndpoint に供給します。

ステップ3で誰か助けてくれませんか?また、私の計画は正しいですか?

ご提案ありがとうございます。

ミハイル

PS また、大きな大きな問題は、 $slave_port がどうなるかです

4

0 に答える 0