WebRTC ist jetzt ein W3C- und IETF-Standard

Ein kurzer Überblick über die Geschichte, Architektur, Anwendungsfälle und Zukunft von WebRTC.

Huib Kleinhout
Huib Kleinhout

Die Definition eines Webstandards ist ein langwieriger Prozess, der Nützlichkeit, Konsistenz und Kompatibilität mit verschiedenen Browsern gewährleistet. Heute kennzeichnen das W3C und die IETF die Fertigstellung von möglicherweise einem der wichtigsten Standards während der Pandemie: WebRTC.

WebRTC ist eine Plattform, die Browsern, mobilen Apps und Desktop-Apps Funktionen zur Echtzeitkommunikation bietet, die in der Regel für Videoanrufe verwendet werden. Die Plattform umfasst umfassende Technologien und Standards. Google entwickelte 2009 die Idee, WebRTC zu entwickeln, als Alternative zu Adobe Flash und Desktopanwendungen, die nicht im Browser ausgeführt werden können. Die vorherige Generation browserbasierter Produkte basierte auf lizenzierter, proprietärer Technologie. Mit dieser Technologie wurden verschiedene Produkte entwickelt, darunter Hangouts. Google übernahm dann die Unternehmen, von denen es die Technologie lizenziert hatte, und stellte sie als Open-Source-WebRTC-Projekt zur Verfügung. Diese Codebasis ist in Chrome eingebunden und wird von den meisten Anwendungen verwendet, die WebRTC verwenden. Gemeinsam mit anderen Browseranbietern und Branchenführern wie Mozilla, Microsoft, Cisco und Ericsson wurde die Standardisierung von WebRTC sowohl im W3C als auch in IETF gestartet. 2013 haben Mozilla und Google Videoanrufe zwischen ihren Browsern gezeigt. Im Laufe der Entwicklung des Standards hatten viele Architekturfragen zu Abweichungen bei der Implementierung bei Browsern sowie zu Herausforderungen bei der Kompatibilität und Interoperabilität geführt. Die meisten dieser Meinungsverschiedenheiten wurden letztendlich beigelegt, als der Standard in den letzten Jahren verabschiedet wurde. Die WebRTC-Spezifikation wird jetzt mit einer vollständigen Reihe von Plattformtests und Tools zur Kompatibilität ergänzt. Außerdem haben Browser ihre Implementierungen weitgehend entsprechend angepasst. Damit endet eine schwierige Zeit, in der Webentwickler ihre Dienste kontinuierlich für verschiedene Browserimplementierungen und Spezifikationsänderungen einführen mussten.

Architektur und Funktionalität

Die RTCPeerConnection API ist der zentrale Teil der WebRTC-Spezifikation. RTCPeerConnection verbindet zwei Anwendungen auf 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 getDisplayMedia für die Erfassung von Bildschirminhalten. Mit WebRTC können Sie Streams mit Audio- und/oder Videoinhalten sowie beliebige Binärdaten über die DataChannel senden und empfangen. Die Medienfunktion zur Verarbeitung, Codierung und Decodierung von Audio und Video bildet den Kern jeder WebRTC-Implementierung. WebRTC unterstützt verschiedene Audio-Codecs, wobei Opus am häufigsten verwendet und vielseitig ist. WebRTC-Implementierungen sind erforderlich, um sowohl den kostenlosen VP8-Video-Codec von Google als auch H.264 für die Videoverarbeitung zu unterstützen. WebRTC-Verbindungen sind immer verschlüsselt, was über zwei bestehende Protokolle erreicht wird: DTLS und SRTP. WebRTC stützt sich stark auf bestehende Standards und Technologien, von Video-Codecs (VP8, H264), Network Traversal (ICE), Transport (RTP, SCTP) bis zu Medienbeschreibungsprotokollen (Media Description Protocols, SDP). Dies ist in über 50 RFCs miteinander verbunden.

Anwendungsfälle: im Millisekundenbereich

WebRTC wird häufig in zeitkritischen Anwendungen wie Remotechirurgie, Systemüberwachung und Fernbedienung autonomer Autos sowie in Sprach- oder Videoanrufen auf Basis von UDP verwendet, bei denen eine Zwischenspeicherung nicht möglich ist. Fast alle browserbasierten Videoanrufe von Unternehmen wie Google, Facebook, Cisco, RingCentral und Jitsi verwenden WebRTC. Google Stadia und NVIDIA GeForce NOW verwenden WebRTC, um das Gameplay ohne erkennbare Verzögerung aus der Cloud in den Webbrowser zu übertragen.

Pandemie konzentriert sich auf Leistung von Videoanrufen

Im letzten Jahr hat WebRTC einen Anstieg der Nutzung in Chrome um das 100-Fache zu verzeichnen, da die Anzahl der Videoanrufe über den Browser zugenommen hat. Wir haben erkannt, dass Videoanrufe während der Pandemie für viele Menschen ein wesentlicher Bestandteil des Lebens geworden sind. Daher haben Browseranbieter damit begonnen, die Technologien zu optimieren, von denen Videoanrufe abhängig sind. Dies war besonders wichtig, da ressourcenintensive Meetings und Videoeffekte in Videokonferenzen immer häufiger wurden, als Mitarbeiter und Schüler von zu Hause aus arbeiten und lernen. Im vergangenen Jahr ist der Akkuverbrauch von Chrome für Videoanrufe um bis zu 30% gestiegen. Für intensive Nutzungen sind weitere Optimierungen geplant. Mozilla, Apple und Microsoft haben alle erhebliche Verbesserungen bei der Implementierung von WebRTC während der Pandemie vorgenommen, insbesondere bei der Einhaltung des jetzt formell gefassten Standards.

Die Zukunft von WebRTC

WebRTC ist zwar inzwischen als W3C-Standard abgeschlossen, aber es werden noch weitere Verbesserungen vorgenommen. Der neue Video-Codec AV1, mit dem bis zu 50% der Bandbreite gespart werden, ist ab sofort für WebRTC und Webbrowser verfügbar. Weitere Verbesserungen der Open-Source-Codebasis sollen die Verzögerung weiter reduzieren und die Qualität des gestreamten Videos verbessern. WebRTC NV hat die Initiative zur Entwicklung zusätzlicher APIs für neue Anwendungsfälle zusammengetragen. Sie bestehen aus Erweiterungen bestehender APIs, um mehr Kontrolle über vorhandene Funktionen wie skalierbare Videocodierung zu geben, sowie aus APIs, die Zugriff auf Komponenten niedrigerer Ebene ermöglichen. Letzteres bietet Webentwicklern mehr Flexibilität bei der Innovation durch die Integration von leistungsstarken, benutzerdefinierten WebAssembly-Komponenten. Angesichts der neuen 5G-Netzwerke und der Nachfrage nach mehr interaktiven Diensten erwarten wir im kommenden Jahr, dass Dienste auf WebRTC aufbauen.