Simulcast is a technique by which a WebRTC client encodes the same video stream twice in different resolutions and bitrates and sending these to a media router who then decides who receives which of the streams. Simulcast adds more flexibility to how media servers can operate at scale.

Simulcast is closely related to SVC, where a single encoded video stream can be layered and each participant receives only the layers that he can process.

YouTube video

How Simulcast Works

In a simulcast scenario, the originating device, which is broadcasting data, sends multiple media streams towards what is known as the Selective Forwarding Unit (SFU). This means that each device will encode and transmit several media streams, each with varying levels of quality.

Typically, there are two or three streams sent to the server, each with a different bitrate and consequently, different resolutions, frame rates, and overall quality.

The Role of the SFU

The SFU, or media server, plays a crucial role in the simulcast process. It is responsible for deciding which stream to send to each participant in the call.

The SFU might choose to send the highest bitrate stream, which in our example could be 1.5 megabits per second, offering the best stream quality available. Alternatively, it could opt to send a lower quality stream if that’s more appropriate.

Decision-Making in Simulcast

The criteria the SFU uses to make these decisions can vary greatly depending on the implementation. Factors such as the available bitrate on both the sender and receiver ends, the capabilities of the devices involved, the current network quality, the layout on the screen, what is being shown, and the priorities set within the application all play a part in this decision-making process.

Learn More About Simulcast

Simulcast is a complex but fascinating feature of WebRTC that caters to the dynamic needs of multi-party communication. For those interested in diving deeper into this topic or other terms related to WebRTC, resources like webrtcglossary.com offer a wealth of information.

Additionally, for a more structured learning path, courses are available that can provide further insight into simulcast and other advanced WebRTC functionalities.

About WebRTC Glossary

The WebRTC Glossary is an ongoing project where users can learn more about WebRTC related terms. It is maintained by Tsahi Levent-Levi of BlogGeek.me.

Looking to learn more about WebRTC? 

Check my WebRTC training courses