如何计算webrtc的服务器带宽?

如何计算webrtc的服务器带宽?,webrtc,bandwidth,video-conferencing,coturn,rfc5766turnserver,Webrtc,Bandwidth,Video Conferencing,Coturn,Rfc5766turnserver,我使用webrtc开发了简单的多对多视频会议网站,我需要配置TURN服务器。我对选择带宽大小感到困惑 单个用户最多发送500kbps的数据。参加人数最多为300人。每次会议的最大时间约为200分钟,每次会议的最大主机数约为200 我在谷歌上提到了近80%-85%我们不需要转向服务器 为此,我需要多少带宽?simple coturn服务器是否会为此提供支持?如果没有,我应该在哪里购买Turn server,或者是否可以使用此配置创建自己的Turn server。首先,WebRTC需要每个参与者之间

我使用webrtc开发了简单的多对多视频会议网站,我需要配置TURN服务器。我对选择带宽大小感到困惑

单个用户最多发送500kbps的数据。参加人数最多为300人。每次会议的最大时间约为200分钟,每次会议的最大主机数约为200

我在谷歌上提到了近80%-85%我们不需要转向服务器


为此,我需要多少带宽?simple coturn服务器是否会为此提供支持?如果没有,我应该在哪里购买Turn server,或者是否可以使用此配置创建自己的Turn server。

首先,WebRTC需要每个参与者之间的对等连接。如果您的用例在每个会话/会议室中有300名参与者,那么每个参与者必须从其他299名参与者上传/下载500kbps的数据,这是相当大的网络流量。好吧,甚至谷歌也将谷歌见面/聚会视频通话限制在25名参与者,他们在幕后使用WebRTC

我怀疑您是否希望在有100多名参与者的情况下使用WebRTC构建视频会议系统,但我仍将帮助您获得您目前想要的数字,并在回答的最后解释为什么它可能不现实

根据您的数字,假设20%的用户(A组)由于其网络设置(例如NAT后)将需要TURN服务器,而其他80%的用户(B组)将能够彼此建立直接的对等连接

  • 组A中的用户需要轮流与组A中的其他用户连接
  • 组A中的用户需要轮流与组B中的其他用户连接
  • 组B中的用户需要轮流与组A中的其他用户连接
  • 组B中的用户不需要轮流与组A中的用户连接,在这种情况下,直接点对点连接将起作用
  • 根据你的数字,如果80%的用户属于B组,这意味着发生#4的几率约为64%。(80% * 80%). 因此,64%的网络流量将是不需要TURN的对等连接,而其余36%的流量将需要TURN服务器来中继视频数据

    一个用户将需要连接到299个其他用户,其中36%的连接将通过TURN路由。这转化为大约107个通过TURN路由的连接。为了简单起见,假设每个用户299个连接中的100个需要转向继电器

    您说过每个用户发送的数据最大为500kbps。由于每个用户都需要通过TURN将视频发送给其他100个用户,这意味着大约50000kbps或50Mbps。因此,平均而言,每个用户通过TURN消耗50Mbps的网络吞吐量。(对于直接p2p连接,还有100Mbps)

    由于每个会话中有300个用户/参与者,因此将50Mbps乘以300,即得出15000Mbps或15Gbps或15Gb/s,即所有参与者每秒使用的总转弯流量

    您说过最大会议长度是200分钟,所以在200分钟的会话中交换的总流量将是15Gb/s*60s/m*200=180000GB=22500GB

    仅供参考,云服务提供商对网络流量收取约0.07美元/GB的费用,因此您需要高达22500 GB网络流量的完整200分钟会话可能需要1575美元

    WebRTC非常适合于会议室/会话中的参与者数量较少的用例,因为每个参与者都必须连接到所有其他参与者。它所需的连接数以O(n^2)的速率增加,其中n是参与者的数量

    您可能希望研究使用SFU/MFU或调整您的数字,使其更现实。(例如,你真的需要300名参与者同时分享他们的视频吗?)更不用说,支持150Mbps上行和150Mbps下行网络的用户不会很多