What an SFU does
In a call, every participant sends audio and often video. A selective forwarding unit receives each stream once and decides which streams to forward to whom – for example only the active speakers, or a lower video quality for someone on a weak connection.
The SFU does not mix or re-encode the media. That keeps the delay low and the server load moderate, and each participant can choose the layout they want to see.
Mesh, MCU and SFU compared
- Mesh (peer-to-peer)
- Everyone sends to everyone. Fine for two or three people; the upload grows with every participant.
- MCU (multipoint control unit)
- The server decodes, mixes and re-encodes all streams into one. Little bandwidth for clients, but heavy on the server and less flexible.
- SFU
- The server forwards streams selectively without decoding. Each client sends once and receives what it needs.
Many SFUs use simulcast: the sender encodes its video in several qualities, and the SFU picks the right one per recipient.
SFU in Coviqo
Meetings, voice rooms and calls in Coviqo run over WebRTC through SFU media servers in data centres in Germany. The connection to the media server is encrypted.
In end-to-end encrypted rooms, audio, video and screen shares are additionally encrypted frame by frame on the participants’ devices. The SFU then only forwards frames it cannot decrypt.
Frequently asked questions
Can the SFU see or hear my call?
In a normal call the media is encrypted on the way, but the media server handles it unencrypted in order to forward it. In end-to-end encrypted rooms, the frames are encrypted on the devices and the server cannot decrypt them.
Why not peer-to-peer?
With more than a few people, every participant would have to upload their stream once per recipient. An SFU needs only one upload per participant.