我的任务是构建一个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,并将其上的一些空闲UDP端口替换为分配给Kurento的范围。将该端点连接到演示者的WebRtcEndpoint。
3)????? (需要在从属服务器上创建一个RtpEndpoint,它将接收RtpEndpoint在第2步发送的流 - 但是如何向它提供哪个SDP?可能是在步骤2中收到的sdpAnswer,将其重新用作从属Kurento上的SDP提供?不确定)
4)通过循环负载均衡算法将观众连接到每个从属服务器,将RtpEndpoint馈送到他们接收的WebRtcEndpoints
有人可以帮我解决第3步吗?我的计划也正确吗?
感谢您的任何建议!
米哈伊尔
PS也是一个很大的问题,$ slave_port将是什么