One of the key features of any virtual classroom is low-latency video conferencing, which makes online education easier and more effective. All participants in a room should be able to see and hear each other at the best quality their Internet connection and device can provide. To make it work in the most optimal way, we use our deep SFU/MCU engine with Simulcast support.
The Selecting Forwarding Unit (SFU) is a server that all the participants’ browsers connect to, and it forwards the WebRTC packets from the presenter to viewers.
Simulcast is a WebRTC technology, which encodes the video stream in different bitrates to meet the needs of recipients.
How does it work?
For a usual situation when a teacher is streaming and students are watching it works like this: a WebRTC client sends a video stream from a presenter in three different bitrates. Video streams are then received by the Selecting Forwarding Unit (SFU). The SFU forwards the WebRTC packets from the presenter to viewers.
For a situation when not only a teacher is streaming, but also students, it works the same way. Only this time everybody is a presenter and a viewer at the same time. Each user sends a signal to the SFU once and receives other users’ streams from the SFU.
The core notions in streaming are:
- Presenter- a browser that is broadcasting video and audio stream from their camera and microphone.
- Viewer- a browser that is receiving presenter’s video and audio data.
- Bitrate- the number of bits per second being conveyed over the Internet. The higher the bitrate, the higher the quality.
It doesn’t matter how many viewers we have, we don’t need to bring down the bitrate of the presenter for viewers with weaker devices or lower Internet speed. Each viewer receives whichever bitrate suits them best.
In BrainCert Virtual Classroom, it is also possible to set the desired video quality manually in the user’s video settings. This will affect both the quality of the own stream that the user sends out to others and the quality of video streams the user receives from other participants. However, if the user selects the auto-mode, the quality of videos will adapt automatically, providing the highest possible quality.
Simulcast is more beneficial the more viewers there are to receive the video stream of the presenter. With Simulcast, the average bitrate received by viewers is independent of the total number of them. They can receive different qualities that are the best for each viewer’s network or hardware capacity conditions without affecting each other. The result is an overall higher average bitrate for all participants. Without Simulcast, all viewers receive a video stream of the same quality, based on the viewer with the lowest bandwidth. So if at least one viewer has a low bandwidth, all viewers have to watch the stream in the same low quality.
We deliver the best quality viewers are able to receive. If a viewer has some problems with bandwidth (changed Wi-Fi to a slow mobile network, for example), the video quality is adapting to it, lowering the bitrate. If a situation gets better, video quality is also getting better, raising the bitrate.
Simulcast vs Adaptive Bitrate
Another benefit of using WebRTC Simulcast in streaming compared to alternatives is lower latency since the multiple encoding of a video stream is done on the client’s end.
An alternative technology used in video streaming is ABR (Adaptive Bitrate), which is done on the server’s side. The presenter encodes the stream only once in high resolution and sends it to the server, where it is decoded and then re-encoded again with different resolutions and bitrates.
With ABR, the server is heavily loaded with the task to generate alternative video streams from the incoming one on its own in real-time. With Simulcast, the server is not loaded as much since it’s the client who has to pay the price of higher CPU usage. No matter how good a server-side ABR is implemented, this technology can never be as fast as WebRTC Simulcast.
Originally Google’s product, the WebRTC technology became very popular over the recent years, so today it is an Opensource project supported not only by Google, but also by Mozilla and Opera, and WebRTC Simulcast can be used in different browsers, including Safari.
Another benefit is the full mobile streaming support. No need to request users to download any plugins. Both Android and iOS phones or tablets are ready to use Virtual Class and watch streams.
The WebRTC technology is the most optimal solution today for providing video and audio streaming for the number of participants that BrainCert currently offers. BrainCert’s HTML5 Virtual Classroom allows attendees to simultaneously broadcast their videos, and all the participants in the classroom are able to view these streams, choosing between 3 different definitions (LD, SD and HD). This offers optimal viewing experience by maximizing the video quality for every participant in the classroom and avoids the bitrate of the latter being dragged down due to other participants within the same session with less bandwidth available.