WebRTC 带宽要求

19

有人知道WebRTC的带宽最低要求是什么吗? 我想知道有无视频和不同视频分辨率下的值。我尤其关注两方会议的值,但如果您知道每个参与方的值也可以。

如果您有实际指标很好,但是如果您知道如何在理论上计算这也很好。

此外,不同的浏览器有不同的带宽要求吗?

2个回答

22
带宽要求与opusvp8的带宽要求几乎相同。实时音频通常具有40-200kbit/s的比特率。视频需要至少200 kbit/s(如果您想看到人们的脸则为500kbit/s)。
根据webrtc-experiment,opus的最小带宽为6kbit/s,vp8为100kbits/s。因此,总共需要106kbit/s,但考虑到webrtc协议栈的开销和网络条件的不断变化,我猜测如果想要稳定的视频和音频,则最低要求为200kbit/s。
Chrome和Firefox都使用opus和vp8,因此带宽要求应该相同。尽管我没有任何硬数据来证明它。
您可以通过访问chrome://webrtc-internals并检查所有图表来查看webrtc生成的当前流量。

你知道webrtc-experiment是只针对Chrome还是也适用于其他浏览器吗? - Adrian Ber
opus 和 vp8 是与 WebRTC 项目不相关的独立项目,因此有关这两项技术的 webrtc-experiments 结果应该与浏览器无关。至于其余结果,我不确定。我猜它们是针对 Chrome 和 Firefox 的。毕竟两个实现共享一些代码,测试看起来相当彻底。 - Svetlin Mladenov
为什么P2P视频通话需要TURN和STUN服务器的带宽?我认为连接后,TURN和STUN服务器不需要做任何事情吧? - nobjta_9x_tq

13

对于双方会议而言,每个数据流500 kbit/s的好会议质量应该足够了(因此用户线路上的负载为1 Mbit/s)。在这方面,我和其他回答的意见一致。

然而,多方WebRTC带宽可能会出现瓶颈,不仅是由于参与者的互联网带宽,也由于TURN媒体中继服务器的潜在带宽限制,如果您使用这种服务器——在没有P2P连接可能由于复杂的NAT设置而需要。 (所有详细信息都在这里。)

我尝试粗略计算了一个TURN服务器可以提供服务的用户数量,直到其带宽达到最大值:

  • 假设我们总共有100 Mbit/s的服务器带宽(输入+输出),我们希望WebRTC流量使用最多60 Mbit/s。

  • 因此,例如在配置coturn TURN服务器时,我们将设置输入和输出流各为30 Mbit/s(即3,750,000字节/秒,使用bps-capacity=3750000)。

  • 输出流将承受更高的负载,因为对于n个参与者而言,每个参与者将有1个视频输入流和n-1个视频输出流需要TURN服务器处理。这意味着瓶颈将是30 Mbit/s的组合输出流。

  • 在最坏的情况下(即根本无法进行任何STUN协商的P2P连接),这个带宽将足以支持:30 Mbit/s / 500 kbit/(s*stream) = 60个视频流。

  • 假设有n个参与者,每个参与者会产生n-1个输出流,这意味着总共会有n * (n-1) = n^2 - n个流。我们最多可以支持60个流,因此:
    n^2 - n = 60 <=> n = 8.26 = ~8个参与者(计算公式)。

  • 目前不确定这个结果的准确性。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接