WebRTC Bandwidth Requirements

Does anyone know what are the minimum bandwidth requirements for WebRTC? I’m interested in what are the meanings with or without video and for different video solutions. I am particularly interested in a two-way conference, but if you know the meanings for each side, this is also good.

If you have actual indicators, this is good, but also if you know how I can theoretically calculate this, too.

Also, do different browsers have different bandwidth requirements?

+11
bandwidth webrtc
source share
2 answers

The bandwidth requirements are almost the same as the bandwidth requirements for opus and vp8 . Real-time sound usually has a bit rate of 40-200 kbps. Video requires at least 200 kbps (500 kbps if you want to see people).

According to the webrtc-experiment, the minimum bandwidth for opus is 6 kbps and for vp8 100 kbps. Thus, the total amount is 106 kbps, but when you take into account the overhead of the webrtc protocol stack and constantly change the network conditions, I would suggest that 200 kbps is the minimum if stable video and audio are required.

Chrome and Firefox use opus and vp8, so bandwidth requirements should be the same. Although I do not have hard data to prove this.

You can see the current traffic generated by webrtc by going to chrome: // webrtc-internals and checking all the diagrams.

+18
source share

For two-way conferences, 500 kbit / s should be enough for a good conference quality (per stream, so the load on the user line is 1 Mbit / s). I agree with another answer about this.

However, multiparty WebRTC bandwidth can be a bottleneck not only because of the bandwidth of Internet participants, but also because of the potential bandwidth limitations of the TURN media relay server, if you use it - which is necessary when P2P connection is not possible due to difficulties NAT settings. ( All the details are here. )

I tried to roughly calculate how many users the TURN server can serve before maximizing its throughput:

  • Suppose we have a total server bandwidth of 100 Mbit / s (input + output), and we want to maximize the use of 60 Mbit / s WebRTC traffic.

  • So, for example, when setting up the Coturn TURN server, we set each input and output stream to 30 Mbps ( bps-capacity=3750000 bytes / s using bps-capacity=3750000 ).

  • The output stream will experience a higher load, since if there are n participants, there will be 1 input video stream and n-1 output video streams per participant for processing by the TURN server. It means that the bottleneck will be the combined output stream of 30 Mbps.

  • In the worst case (when consistent STUN P2P connections are not possible at all), this bandwidth will be enough for: 30 Mbit / s / 500 kbit / (s * stream) = 60 video streams.

  • Given n participants, there will be n-1 output threads per participant, which means a total of n * (n-1) = n ^ 2 - n threads. Our max. Then 60 threads are enough for: n ^ 2 - n = 60 <=> n = 8.26 = ~ 8 participants ( calculation ).

Not sure yet how accurate this is.

+7
source share

All Articles