WebRTC ist jetzt ein W3C- und IETF-Standard

Eine kurze Übersicht über die Geschichte, Architektur, Anwendungsfälle und Zukunft von WebRTC.

Huib Kleinhout
Huib Kleinhout

Die Definition eines Webstandards ist ein langwieriger Prozess, der für Nützlichkeit, Einheitlichkeit und plattformübergreifende Kompatibilität sorgt. Heute feiern das W3C und die IETF den Abschluss eines der wichtigsten Standards während der Pandemie: WebRTC.

Verlauf

WebRTC ist eine Plattform, die Browsern, mobilen Apps und Desktop-Apps Echtzeitkommunikationsfunktionen bietet, die in der Regel für Videoanrufe verwendet werden. Die Plattform besteht aus einer umfassenden Reihe von Technologien und Standards. Google hat 2009 die Idee zu WebRTC entwickelt, als Alternative zu Adobe Flash und Desktopanwendungen, die nicht im Browser ausgeführt werden konnten. Die vorherige Generation der browserbasierten Produkte basierte auf lizenzierter proprietärer Technologie. Mit dieser Technologie wurden verschiedene Produkte entwickelt, darunter Hangouts. Google hat dann die Unternehmen aufgekauft, von denen es die Technologie in Lizenz erworben hatte, und sie als Open-Source-WebRTC-Projekt verfügbar gemacht. Diese Codebasis ist in Chrome integriert und wird von der Mehrheit der WebRTC-Anwendungen verwendet. Zusammen mit anderen Browseranbietern und Branchenführern wie Mozilla, Microsoft, Cisco und Ericsson wurde die Standardisierung von WebRTC sowohl im W3C als auch in der IETF gestartet. 2013 haben Mozilla und Google Videoanrufe zwischen ihren Browsern demonstriert. Durch die Weiterentwicklung des Standards haben viele architektonische Diskussionen zu Implementierungsunterschieden zwischen Browsern geführt und die Kompatibilität und Interoperabilität beeinträchtigt. Die meisten dieser Meinungsverschiedenheiten wurden letztendlich beigelegt, als der Standard in den letzten Jahren fertiggestellt wurde. Die WebRTC-Spezifikation wird jetzt von einer Reihe von Plattformtests und Tools zur Kompatibilität begleitet. Die Browser haben ihre Implementierungen weitgehend entsprechend angepasst. Damit endet eine herausfordernde Zeit, in der Webentwickler ihre Dienste kontinuierlich an unterschiedliche Browserimplementierungen und Spezifikationsänderungen anpassen mussten.

Architektur und Funktionalität

Die RTCPeerConnection API ist der zentrale Teil der WebRTC-Spezifikation. RTCPeerConnection dient der Verbindung zweier Anwendungen an verschiedenen Endpunkten, um über ein Peer-to-Peer-Protokoll zu kommunizieren. Die PeerConnection API interagiert eng mit getUserMedia für den Zugriff auf Kamera und Mikrofon und mit getDisplayMedia für die Erfassung von Bildschirminhalten. Mit WebRTC kannst du Streams mit Audio- und/oder Videoinhalten sowie beliebige Binärdaten über die DataChannel senden und empfangen. Die Medienfunktionen zur Verarbeitung, Codierung und Dekodierung von Audio und Video bilden den Kern jeder WebRTC-Implementierung. WebRTC unterstützt verschiedene Audiocodecs. Opus ist der am häufigsten verwendete und vielseitigste. WebRTC-Implementierungen müssen sowohl den kostenlos nutzbaren VP8-Videocodec von Google als auch H.264 für die Videoverarbeitung unterstützen. WebRTC-Verbindungen sind immer verschlüsselt. Dies wird durch zwei bestehende Protokolle erreicht: DTLS und SRTP. WebRTC stützt sich stark auf bestehende Standards und Technologien, von Videocodecs (VP8, H264) über Netzwerkdurchlauf (ICE), Transport (RTP, SCTP) bis hin zu Protokollen zur Medienbeschreibung (SDP). Dies wird in über 50 RFCs zusammengeführt.

Anwendungsfälle: Wenn es um Millisekunden geht

WebRTC wird häufig in zeitkritischen Anwendungen wie Fernchirurgie, Systemüberwachung und Fernsteuerung autonomer Autos sowie in Sprach- oder Videoanrufen auf UDP-Basis verwendet, bei denen kein Puffern möglich ist. Fast alle browserbasierten Videoanrufdienste von Unternehmen wie Google, Facebook, Cisco, RingCentral und Jitsi verwenden WebRTC. Google Stadia und NVIDIA GeForce NOW nutzen WebRTC, um den Gameplay-Stream ohne wahrnehmbare Verzögerung von der Cloud an den Webbrowser zu übertragen.

Die Pandemie legt den Fokus auf die Leistung von Videoanrufen

Im letzten Jahr hat sich die Nutzung von WebRTC in Chrome aufgrund der steigenden Anzahl von Videoanrufen über den Browser verzehnfacht. Da Videoanrufe während der Pandemie zu einem wichtigen Bestandteil des Lebens vieler Menschen geworden sind, haben Browseranbieter damit begonnen, die Technologien zu optimieren, auf denen Videoanrufe basieren. Das war besonders wichtig, da ressourcenintensive große Videokonferenzen und Videoeffekte in Videokonferenzen immer häufiger wurden, als Mitarbeiter und Schüler/Studenten von zu Hause aus arbeiten und lernen mussten. Im letzten Jahr wurde Chrome bei Videoanrufen um bis zu 30% energieeffizienter. Weitere Optimierungen für intensive Nutzung sind in Planung. Mozilla, Apple und Microsoft haben in der Pandemie erhebliche Verbesserungen an ihrer WebRTC-Implementierung vorgenommen, insbesondere im Hinblick auf die Einhaltung des jetzt formalisierten Standards.

Die Zukunft von WebRTC

WebRTC ist jetzt als W3C-Standard fertig, es werden aber weiterhin Verbesserungen vorgenommen. Der neue Videocodec AV1, mit dem bis zu 50% der Bandbreite eingespart werden, wird in WebRTC und Webbrowsern verfügbar sein. Durch kontinuierliche Verbesserungen an der Open-Source-Codebasis werden Verzögerungen voraussichtlich weiter reduziert und die Qualität der gestreamten Videos verbessert. WebRTC NV ist die Initiative zur Erstellung ergänzender APIs, die neue Anwendungsfälle ermöglichen. Sie bestehen aus Erweiterungen bestehender APIs, die mehr Kontrolle über vorhandene Funktionen wie die Scalable Video Coding bieten, sowie APIs, die Zugriff auf Komponenten der unteren Ebene ermöglichen. Letzteres bietet Webentwicklern mehr Flexibilität, um durch die Einbindung leistungsstarker benutzerdefinierter WebAssembly-Komponenten innovative Lösungen zu entwickeln. Mit den aufkommenden 5G-Netzwerken und der Nachfrage nach mehr interaktiven Diensten gehen wir davon aus, dass im kommenden Jahr immer mehr Dienste auf WebRTC basieren werden.