Multi-Party WebRTC Option 3’s strategy is SFU, which stands for Selective Forwarding Unit. The idea behind SFU is similar to MCU. It has a media server in the middle to which all peers send their streams, only that instead of making any heavy processing on it, the server routes them to other peers so that they can make any needed processing.

This way the server doesn’t need to be a super powerful server with high specs, and you can take advantage of the goodies provided by MCU while avoiding the Mesh hassles and high costs associated with MCU.

This diagram below looks with SFU.

On an SFU architecture, each peer sends its own stream to the media server, which in turn routes the streams to other peers. Of course, this adds some overhead to the client side, which now has to encode/decode the media that sends/receives. Plus, the download bandwidth increases as the number of users increase.

However, the media sever has a central point of control which controls the media that is being routed in order to minimize the impact of those two problems. This is where the “Selective” part on Selective Forwarding Unit comes to the rescue. Though heavy processing like decoding/encoding is not done on the server, other tasks can be done with the media. Basically the process done by the server can be summarized in three steps:

The media server receives the streams, selects what to do with it and finally sends it. It’s possible to decide not to send a specific stream at all or apply techniques as Simulcast or SVC to selectively send specific types of stream according to the receiver. For example, we can decide to send an 1080p video steam to a user that is on high spec computer and fast internet connection, while sending a 360p video steam to a user on a mobile device that is using a broadband connection.

Despite the downsides, SFU offers an architecture that doesn’t break as easily as Mesh and with a lower cost than MCU.

Want to learn more?

To learn more about SFU and other ways to add users to your connection visit our website here.

Recent Blog Posts