Bandwidth calculator for BigBlueButton

Bandwidth calculator?

Everyone playing around with BigBlueButton servers will sooner or later ask: How many conferences / conference connections can be handled by my server? While memory and CPU is not such a big problem, bandwidth requirements might partially grow exponentially when increasing the connection count. So: How high are the bandwidth requirements for your server?

On the website of BigBlueButton (see documentation) there are some specific formulars you can use to calculate the bandwidth required. It becomes clear that the traffic a server has to handle is highly dependend on parameters like number of audio connections, webcam connections or screenshares. Even more problematic: In rare cases your server might have to handle conferences in which all clients are behind a firewall or proxy. In this case it might occur that not only your BBB server has to handle all the traffic, but also you TURN server.

We had the idea to transform all the nice formulars of the BBB documentation into a simple calculator, so it is simple to play around with it.

Theoretical values?

We did our best to check the results of the calculator in real world scenarios. We for example recognized that the documentation of BBB mentions 40Kbit/s for an audio connection. In real world we had approx. 60 Kbit/s on our wires. The calculator has both values (see below).

So with regard to our real world measurements, we can say: Yes, those values are correct for standard installations of BigBlueButton.

Parameters

Directly connected participants
- with webcam
- with screenshare
There can be only one screenshare per conference (TURN+directly connected)
TURN-connected participants
Please enter the number of participants that are connected via TURN server ADDITIONALLY to the directly connected ones. So directly connected + TURN-connected = total connected participants
- with webcam
- with screenshare
There can be only one screenshare per conference (TURN+directly connected)
Webcam bitrate
Audio / VOIP bitrate (kb/s)
Screenshare bitrate

Results

Total connected participants{{getParticipants()}}
- with webcam{{getParticipantsWithWebcam()}}
- with screenshare{{getParticipantsWithScreenshare()}}

Client

Inbound client traffic (Participant without webcam, with or without activated screenshare){{getInboundTrafficClient(0) | sumup | toHRBits}}/s bzw. {{getInboundTrafficClient(0) | sumup | toHRBytes}}/s
Inbound client traffic (Participant with webcam, with or without activated screenshare){{getInboundTrafficClient(1) | sumup | toHRBits}}/s bzw. {{getInboundTrafficClient(1) | sumup | toHRBytes}}/s
Outbound client traffic (Participant without webcam, without activated screenshare){{getOutboundTrafficClient(0,0) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(0,0) | sumup | toHRBytes}}/s
Outbound client traffic (Participant with webcam, without activated screenshare){{getOutboundTrafficClient(1,0) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(1,0) | sumup | toHRBytes}}/s
Outbound client traffic (Participant without webcam, with activated screenshare){{getOutboundTrafficClient(0,1) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(0,1) | sumup | toHRBytes}}/s
Outbound client traffic (Participant with webcam, with activated screenshare){{getOutboundTrafficClient(1,1) | sumup | toHRBits}}/s bzw. {{getOutboundTrafficClient(1,1) | sumup | toHRBytes}}/s

Server

Inbound server traffic{{getInboundTrafficServer() | sumup | toHRBits}}/s bzw. {{getInboundTrafficServer() | sumup | toHRBytes}}/s
Outbound server traffic{{getOutboundTrafficServer() | sumup | toHRBits}}/s bzw. {{getOutboundTrafficServer() | sumup | toHRBytes}}/s

TURN-Server

Inbound server traffic{{getInboundTrafficTurnServer() | sumup | toHRBits}}/s bzw. {{getInboundTrafficTurnServer() | sumup | toHRBytes}}/s
Outbound server traffic{{getOutboundTrafficTurnServer() | sumup | toHRBits}}/s bzw. {{getOutboundTrafficTurnServer() | sumup | toHRBytes}}/s