videocalling
Simulcast

Simulcast

技術

The practice of sending multiple versions of the same video stream at different qualities.

What is Simulcast?

Simulcast (short for "simultaneous broadcast") is a technique used in WebRTC where a client encodes and transmits the same video stream multiple times at different resolutions and bitrates. For example, a client might send three streams simultaneously: one at 720p (high quality), one at 360p (medium quality), and one at 180p (low quality).

This technique is crucial for multi-party video conferencing, allowing the media server (SFU) to selectively forward the most appropriate stream version to each participant based on their available bandwidth and device capabilities.

Why Simulcast Matters

In a group call without simulcast, if one participant has poor bandwidth, the sender might be forced to lower their quality for everyone, or the person with the poor connection simply cannot see the video. This applies the "lowest common denominator" problem to the entire group.

With simulcast:

  • User A (High Bandwidth) receives the 720p stream.
  • User B (Low Bandwidth) receives the 180p stream.
  • User C (Mobile Device) receives the 360p stream to save battery and data.

Everyone gets the best quality their connection can handle, without affecting others.

Simulcast vs. SVC

Scalable Video Coding (SVC) is an alternative to simulcast. While simulcast sends independent streams, SVC sends a single stream with multiple layers (base layer and enhancement layers).

While SVC can be more bandwidth-efficient, simulcast is generally preferred in WebRTC because it is less computationally expensive for the sender (encoding) and more robust against packet loss, as the streams are independent.

How It Works in WebRTC

When simulcast is enabled, the browser's encoder produces typically three layers (spatial layers). The SFU receives all three. When a receiver subscribes to a video track, the SFU decides which layer to forward. The SFU can switch between layers on the fly—for example, if a user minimizes a video or their network degrades, the SFU switches to a lower quality stream immediately.