基于 kurento 的应用占用大量网络带宽

application base on kurento takes much net bandwidth

最近写了一个小应用,类似聊天室。 所以,我只是对 kurento 的多对多(群组通话)演示做了一点改动。但是当我部署在ubuntu服务器上时,我发现当一个房间有超过2个参与者时,网络带宽几乎达到了服务器的最高范围。我使用 nload 工具来观察传入和传出的流量。结果是当2个client连接到ke运行to server时,传入流量超过1Mbit/s,传出超过5Mbit/s.Besides,我尝试更改媒体约束参数来修改视频的宽度、高度、帧率,但效果不佳。此外,我还 运行 github 中给出的广播演示,它满足相同的条件 above.So 我的问题是是否有任何我忽略的配置来控制媒体传输,或者这是一个错误? 谢谢

流媒体恐怕不便宜。在一对多场景中,从媒体服务器的角度来看,您会看到传入带宽远低于传出带宽。那是因为您只接收一个媒体流(来自演示者的那个),而发送许多媒体流。

例如,如果您的演示者以 1Mbit/s 的速度发送视频,并且连接了 5 个观众,您将得到您指出的数字。这不是错误,这就是 Kurento 或任何其他媒体服务器的工作方式。

WebRtcEndpoint 的默认带宽范围是 100kbps-500kbps,但可以针对 input/output 方向和 audio/video 流单独更改。

  • 输入带宽控制机制:配置间隔用于通知远程对等点可以推送到此 WebRtcEndpoint 对象的比特率范围。

    • setMin/MaxVideoRecvBandwidth:设置 Min/Max 接收视频流的预期比特率限制。

    • setMin/MaxAudioRecvBandwidth:设置 Min/Max 接收音频流的预期比特率限制。 最大值在 SDP 中公布,而最小值则设置为限制 REMB 包的下限值。由此可见,min值只会在支持这种控制机制的peer中生效,比如Chrome.

  • 输出带宽控制机制:配置间隔用于控制发送到远程对端的输出视频流的比特率。请务必记住,推送比特率取决于网络和远程对等设备的功能。远程对等方可以在其 SDP 中宣布带宽限制(通过 b=: 标记)。如果存在这样的标签,Kurento 将不会以远程对等方指定的更高比特率发送。

    • 设置Min/MaxVideoSendBandwidth:设置Min/Max发送到远程端的视频的比特率限制
    • 设置Min/MaxAudioSendBandwidth:设置Min/Max发送到远程对等点的音频的比特率限制。

所有带宽控制参数必须在 SDP 协商发生之前更改,之后不能更改。

tl;dr 如果您计划为一对多场景使用媒体服务器,请准备好获得非常好的上传带宽连接。