Jitsi Meet Videobridge
May 1st 2020
Jitsi Meet VideoBridge
Jitsi videobridge is an open-source webrtc video stream handler built by the jitsi community. This forwards a video stream instead of mixing. We call this design a selective forwarding unit (SFU).
Jitsi videoBridge scalability.
This is a massive scalable unit. We can scale jitsi videobridge vertically and horizontally. Jitsi team tested jitsi videobridge on quad-core Intel ® Xeon® E5-1620 v2 @ 3.70GHz CPU server. The test results reveal that it handles 1000 video streams with just 20% CPU usage. Here is the evaluation of the results https://jitsi.org/jitsi-videobridge-performance-evaluation/
If you want to increase the number of users in a conference, you have to increase server resources, mostly network bandwidth.
If you want to run more simultaneous conferences you can add more bridges to your conferencing system. Jitsi uses muc mechanism to connect to the jitsi videobridge xmpp server. Here we don't need to configure anything on xmpp or restart the server. When the jitsi video bridge starts it will automatically connect to the muc room. This allows jicofo to know the available bridges. We can easily auto scale the jitsi video bridge using this mechanism. We can use aws auto scaling group to manage scaling. When multiple jitsi videobridges run, you have to load balance among servers. You can follow the below instruction to load balancing between jitsi video bridges and when you are using muc mechanism jicofo knows how to choose the servers.
Say if you set up servers in Oregon. Your customers are in London. Your customers' video streams have to go through the public network. Packet loss and the larger round trip times will affect the video stream quality. Jitsi videobridge has a feature to avoid that which is called octo(cascade bridges). What happens is, the conference user connects to the nearest bridge and then bridges can communicate between each other. Aws provide their own network infrastructure between their regions therefore congestion and packet loss are not big issues when the communication happens inside aws. Here is the instruction how to setup octo on your infrastructure https://github.com/jitsi/jitsi-videobridge/blob/master/doc/octo.md
Jitsi videobridge provides a rest API called colibri. You can get stats of the current ongoing conferences and here is some information about colibri https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest-colibri.md