Simulcast (Kunstwort aus „simultan" und „broadcast") beschreibt in Echtzeit-Kommunikation das gleichzeitige Senden mehrerer unabhängig kodierter Versionen derselben Videoquelle – etwa eine niedrige, mittlere und hohe Auflösung. Der Empfänger (meist ein SFU) wählt je nach Netzqualität und Anzeigegröße die passende Ebene aus. Die Standardisierung erfolgte mit RFC 8853 (Januar 2021), ergänzt durch RFC 8852 für die RTP-Stream-IDs (rid).
Warum Simulcast?
In einer Videokonferenz haben Teilnehmer sehr unterschiedliche Netze: ein Mobilgerät mit schwachem Empfang, ein Desktop mit Glasfaser. Ohne Simulcast müsste der Sender eine einzige Kodierung wählen, die entweder für das schwächste Netz zu groß oder für das beste Netz unnötig klein ist. Simulcast löst das Problem, indem der Sender mehrere Ebenen produziert und der Empfänger (bzw. der SFU) pro Teilnehmer nur die passende Ebene weiterleitet:
- Empfänger mit schlechtem Netz bekommt die niedrige Auflösung (wenig Bandbreite).
- Empfänger mit gutem Netz bekommt die hohe Auflösung (volle Qualität).
- Der Sender muss weiterhin nur einen einzigen Stream hochladen – die Mehrfachkodierung passiert lokal.
Signalisierung und Abgrenzung
Simulcast wird beim Verbindungsaufbau im SDP ausgehandelt: Die Attribute a=simulcast:send 1;2;3 und a=rid beschreiben die verfügbaren Ebenen. Die Aushandlung läuft über das WebRTC-Signaling. Die eigentlichen Medien reist als RTP-Streams, typische Codecs sind AV1, VP8, VP9 oder H.264.
Abgrenzung zu SVC (skalierbare Videokodierung): SVC kodiert Ebenen in einem einzigen Bitstrom, bei dem höhere Qualitäten auf niedrigeren aufbauen; Simulcast sendet dagegen eigenständige, unabhängig dekodierbare Streams. Beide Ansätze lassen sich auch kombinieren (Simulcast mit SVC-Ebenen pro Stream).