Eine SFU (Selective Forwarding Unit, deutsch etwa „auswählende Weiterleitungseinheit“) ist ein Server, der in WebRTC-Konferenzen die Medienströme der Teilnehmer entgegennimmt und gezielt weiterleitet. Anders als ein MCU (Multipoint Control Unit) mischt oder transkodiert sie die Ströme nicht — sie entscheidet nur, welcher Teilnehmer welchen Strom erhält. Das spart Rechenleistung und erhält die Qualität.
Warum ein Server nötig ist
Bei zwei Teilnehmern fließen die Daten direkt (Peer-to-Peer). Ab drei Teilnehmern explodiert die Zahl der Verbindungen: Bei n Teilnehmern wären n·(n−1)/2 direkte Verbindungen nötig — jedes Gerät müsste alle anderen senden und empfangen. Die SFU bricht dieses Mesh auf: Jeder Teilnehmer sendet seinen Strom nur einmal an die SFU, und die SFU leitet an die anderen weiter.
So arbeitet eine SFU
- Weiterleitung statt Mischen: Jeder Empfänger bekommt die Ströme, die er tatsächlich sehen will. Ein Server muss daher auch bei Dutzenden Teilnehmern wenig CPU aufwenden — die meiste Arbeit liegt bei den Endgeräten.
- Anpassung an Empfänger: Je nach Anzeigegröße oder Bandbreite kann die SFU verschiedene Auflösungen (Simulcast) oder abgespeckte Varianten weiterleiten.
- Zusatzdienste: Aufzeichnung, TURN-Relay und RTCDataChannel-Verteilung laufen zentral über den gleichen Server.
Bekannte SFU-Implementierungen sind mediasoup, Janus, LiveKit und Jitsi Videobridge — sie bilden das Rückgrat vieler Browser-Konferenzdienste.
SFU und Medienströme
Technisch empfängt die SFU die MediaStream-Spuren aller Teilnehmer als RTP-Pakete (verschlüsselt per SRTP) und sendet sie gezielt weiter — die Clients rendern weiterhin Peer-to-Peer-artig, nur die Quelle ist jetzt der zentrale Server. Steuerdaten fließen über RTCP; die Signalisierung übernimmt weiterhin ein eigener Kanal wie WebSocket.
Verwandte Grundlagen: WebRTC, MediaStream, RTCDataChannel.