What is the difference between SFU and MCU

Posted By : Abhishek Gupta | 31-Oct-2022


Media Servers

MCUs and SFUs

WebRTC Challenges

A picture of the peer-to-peer relationship Once it's formed, it's a peer-to-peer connection between those two people, and it’s incredibly efficient.

But if you trying to scale to group conference calls you to end up in a mesh topology—where

each participant sends his media to all other participants as shown below.

Now the number of connections is going up exponentially because every single user needs to have a peer-to-peer connection with every other user in that group video chat. So that can become very problematic. If you're trying to do a large video group chat of more than 10 people, for example, you will run into problems pretty quickly with this. Or if you're trying to use webRTC in its sort of pure form in a larger broadcast or webinar scenario, you’ll certainly run into this problem as well. If you are trying to establish those peer-to-peer connections between every user, scaling webRTC is one of those things that people talk about pretty quickly because it's important in a lot of webRTC use cases.

To support group chats as well as to include other features like call recording and transcription, most applications incorporate a media server to handle the traffic between peers and scale better.

WebRTC Scaling 

Media servers have become the most common way to talk about scaling from one-to-one to a group video chat call.

  • MCU (Multi-point Control Unit /multipoint conferencing unit)
  • SFU (Selective Forwarding Unit)

Either can add features beyond scaling 

  • Recording
  • Broadcasting
  • Interface to other services like transcription, transcoding

Differences between MCU Vs SFU MCU -Multipoint Control Unit

It is a mixer , it takes the video and audio streams from each user mixing them together in a Center server  so each participant only has  one set of streams to deal with regardless of the number of participants in a call .

SFU -Selective Forwarding Unit

just one set of video and audio up to the SFU. The SFU does not produce any composite streams, though. Instead, it transmits a unique stream to each user. Since there are five persons on the call in this example, each participant receives four streams.

  • It routes the corresponding streams to each user.
  • unique streams for each participant (allowing for layout changes on the user side ).
  • more powerful and modern option, but more difficult to implement
  • lower CPU requirements but more variable bandwidth is required (based on the number of users).
  • It is possible to do end-to-end encryption. 

About Author

Author Image
Abhishek Gupta

Abhishek Gupta is a skilled Backend developer with 1.4 years of industry experience. He has a deep understanding and knowledge of the latest technologies, including Core Java, J2EE, Spring-Boot, Spring Security, Hibernate, Cloud, MySQL, MongoDB, and Microservices. His expertise lies in gathering requirements from the functional team, analyzing, designing, and developing projects. He has made significant contributions to the success of various internal projects, Oodles Dashboard. He remains committed to enhancing his skills and knowledge by constantly learning and staying updated with the latest programming techniques and technologies.

Request for Proposal

Name is required

Comment is required

Sending message..