An SFU (Selective Forwarding Unit) receives audio and video streams from every participant in a conference room and relays them to everyone else (endpoints send one and receive many). Compared to a mixer or MCU (Multipoint Control Unit), this design leads to a better performance, higher throughput and less latency. It's highly scalable and requires much less resources given that it does not transcode or mix media.
Since endpoints get the other participants media separately, they can have a personalized layout and choose which streams to render and how to display them.
Detailed information regarding the architecture of an SFU can be found at RFC 7667 “RTP Topologies” section 3.7.
const mediasoup = require("mediasoup");
Thus internally, mediasoup can be splitted into two separete components:
mediasoup-client supports all the current WebRTC and ORTC browsers, including Chrome, Firefox, Safari, Microsoft Edge, and derived browsers (such as Opera or any Chromium based browser). Internally, mediasoup-client handles each browser in a different way by implementing WebRTC (Plan-B or Unified-Plan) or the ORTC API (such as in Microsoft Edge).