What is the difference between SFU and MCU
Posted By : Abhishek Gupta | 31-Oct-2022
WebRTC
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.
Cookies are important to the proper functioning of a site. To improve your experience, we use cookies to remember log-in details and provide secure log-in, collect statistics to optimize site functionality, and deliver content tailored to your interests. Click Agree and Proceed to accept cookies and go directly to the site or click on View Cookie Settings to see detailed descriptions of the types of cookies and choose whether to accept certain cookies while on the site.
About Author
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.