WebRTC ermöglicht die Echtzeit-Kommunikation zwischen Browsern und Geräten, meist Video und Audio, aber auch andere Daten sind möglich. WebRTC ist kostenlos und wird von modernen Browsern unterstützt. Software-Entwicklende können eigene WebRTC-Anwendungen umsetzen bzw. ihre Anwendungen um WebRTC erweitern, wobei die Anwendungen im Browser laufen können oder in Form von nativen Apps auf mobilen Geräten wie Google Android oder Apple iOS.
Mit WebRTC kann eine (Web-)Anwendung auf Kamera und Mikrofon des Geräts zugreifen oder dessen Bildschirm teilen. Dies erfolgt grundsätzlich nur mit Einverständnis der Anwender.
Wie fließen die Video- und Audioströme bei WebRTC?
Drei Topologien stehen zur Auswahl:
- Mesh
Alle Teilnehmer senden und empfangen zwischen allen Teilnehmern.
- Vorteil: Prinzipiell kein Server benötigt.
- Nachteil: Sehr CPU- und bandbreitenintensiv (gleichermaßen Downstream und Upstream) bei den beteiligten Geräten.
- Mixed (Multi-party Conferencing Unit, MCU)
Teilnehmende senden an einen Server, dieser kombiniert alle Video- und Audioströme und sendet sie an die Teilnehmer.
- Vorteil: Wenig Last bei den Geräten der Teilnehmer, geringste Bandbreite von allen genannten Topologien, geringste Anzahl an Verbindungen zwischen Server und Teilnehmenden.
- Nachteil: Alle Video- und Audioströme zu kombininieren ist sehr ressourcenintensiv für den Server.
- Routing (Selective Forwarding Unit, SFU)
Teilnehmende senden an einen Server, dieser reicht jeden Video- und Audiostrom an alle Teilnehmer durch.
- Vorteil: Teilnehmende benötigen wenig Upload-Bandbreite, der Server braucht relativ wenig CPU, da er nur durchreicht.
- Nachteil: Teilnehmende benötigen mehr Downstream-Bandbreite, der Server die höchste Upstream-Bandbreite aller genannten Topologien, höchste Anzahl an Verbindungen zwischen Server und Teilnehmenden. Bei dem in Europa verbreiteten asymmetrischen DSL, mit deutlich mehr Downstream als Upstream, ist diese Variante praktikabler als Mesh.