最近,我写了一个小应用程序,比如聊天室。 所以,我只是在kurento的多对多(群组通话)演示中做了一些改变。但是当我在ubuntu服务器上部署它时,我发现当一个房间有超过2个参与者时,净带宽几乎达到了服务器的最高范围。我使用nload工具来观察传入和传出的流量。结果是,当2个客户端连接到kerunto服务器时,传入流量超过1Mbit / s,传出速度超过5Mbit / s。此外,我尝试更改媒体约束参数以修改宽度,高度,帧速率。视频,但它并没有有效地发挥作用。另外,我还运行github中给出的广播演示,它遇到了上面相同的条件。所以我的问题是,是否有任何配置我忽略控制媒体传输,或者它是一个错误? 谢谢
答案 0 :(得分:3)
我担心流媒体并不便宜。在一对多方案中,从媒体服务器的角度来看,您将看到传入带宽远远低于传出带宽。这是因为您只接收一个媒体流(来自演示者的媒体流),同时发送许多媒体流。
例如,如果您的演示者以1Mbit / s的速度发送视频,并且连接了5个观看者,您将获得您指出的数字。这不是错误,只是Kurento或任何其他媒体服务器的工作方式。
WebRtcEndpoint的默认带宽范围是100kbps-500kbps,但可以针对输入/输出方向和音频/视频流单独更改。
输入带宽控制机制:用于通知远程对等方可以推送到此WebRtcEndpoint对象的比特率范围的配置间隔。
setMin / MaxVideoRecvBandwidth:设置接收视频流的最小/最大比特率限制。
setMin / MaxAudioRecvBandwidth:设置接收音频流的最小/最大比特率限制。 最大值在SDP中公布,而最小值设置为限制REMB包的较低值。因此,min值仅在支持此控制机制的对等体中起作用,例如Chrome。
输出带宽控制机制:用于控制发送到远程对等体的输出视频流的比特率的配置间隔。重要的是要记住推送的比特率取决于网络和远程对等功能。远程对等体可以在其SDP中通知带宽限制(通过b =:标签)。如果存在此类标记,Kurento将不会以远程对等方指定的更高比特率发送。
在进行SDP协商之前,必须更改所有带宽控制参数,之后不能更改。
tl; dr 如果您计划为一对多方案设置媒体服务器,请准备好获得非常好的上传带宽连接。