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.