WebRTC ist jetzt ein W3C- und IETF-Standard

Ein kurzer Überblick über 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 in allen Browsern gewährleistet. Heute markieren das W3C und IETF die Umsetzung von WebRTC, einem der vielleicht wichtigsten Standards während der Pandemie.

Verlauf

WebRTC ist eine Plattform, die Browsern, mobilen Apps und Desktop-Apps Echtzeit-Kommunikationsfunktionen bietet, die in der Regel für Videoanrufe verwendet werden. Die Plattform umfasst eine umfassende Reihe von Technologien und Standards. Die Idee, WebRTC 2009 zu schaffen, wurde von Google als Alternative zu Adobe Flash- und Desktop-Anwendungen, die nicht im Browser ausgeführt werden konnten, eingeführt. Die vorherige Generation browserbasierter Produkte basiert auf lizenzierter, proprietärer Technologie. Verschiedene Produkte wurden mit dieser Technologie entwickelt, darunter auch Hangouts. Google hat dann die Unternehmen übernommen, von denen es die Technologie lizenziert hatte, und sie als Open-Source-Projekt WebRTC zur Verfügung stellen. Diese Codebasis ist in Chrome integriert 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 im IETF eingeführt. 2013 haben Mozilla und Google Videoanrufe zwischen ihren Browsern demonstriert. Durch die Weiterentwicklung des Standards hatten viele Architekturdiskussionen zu unterschiedlichen Implementierungen zwischen Browsern und zu Problemen bei der Kompatibilität und Interoperabilität geführt. Die meisten dieser Meinungsverschiedenheiten wurden letztendlich beigelegt, als der Standard in den letzten Jahren fertiggestellt wurde. Die WebRTC-Spezifikation wird jetzt mit einer vollständigen Reihe von Plattformtests und Tools begleitet, die die Kompatibilität verbessern. Außerdem haben Browser ihre Implementierungen entsprechend angepasst. Damit endet eine schwierige Phase, in der Webentwickler ihre Dienste kontinuierlich für unterschiedliche Browserimplementierungen und Änderungen der Spezifikationen einführen mussten.

Architektur und Funktionalität

Die RTCPeerConnection API ist der zentrale Teil der WebRTC-Spezifikation. RTCPeerConnection verbindet zwei Anwendungen auf verschiedenen Endpunkten für die Kommunikation über ein Peer-to-Peer-Protokoll. Die PeerConnection API interagiert eng mit getUserMedia für den Zugriff auf Kamera und Mikrofon und getDisplayMedia zum Erfassen von Bildschirminhalten. WebRTC ermöglicht Ihnen, Streams mit Audio- und/oder Videoinhalten sowie beliebigen Binärdaten über DataChannel zu senden und zu empfangen. Die Medienfunktionen für die Verarbeitung, Codierung und Decodierung von Audio und Video bilden den Kern jeder WebRTC-Implementierung. WebRTC unterstützt verschiedene Audio-Codecs, wobei Opus der am häufigsten verwendete und vielseitigste 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. Dies wird über zwei vorhandene Protokolle erreicht: 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 hin zu Media Description-Protokollen (SDP). Dies ist in über 50 RFCs miteinander verbunden.

Anwendungsfälle: im Millisekundenbereich

WebRTC wird bei zeitkritischen Anwendungen wie der Remotechirurgie, der Systemüberwachung und der Fernbedienung autonomer Autos sowie bei Sprach- oder Videoanrufen auf UDP verwendet, bei denen keine Zwischenspeicherung 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 aus der Cloud ohne wahrnehmbare Verzögerung in den Webbrowser zu übertragen.

In der Pandemie liegt der Fokus auf der Leistung von Videoanrufen

Im letzten Jahr hat WebRTC aufgrund von vermehrten Videoanrufen aus dem Browser 100-mal zugenommen. In dem Wissen, dass Videoanrufe während der Pandemie für viele Menschen zu einem wichtigen Teil des Lebens geworden sind, haben Browseranbieter damit begonnen, die Technologien zu optimieren, von denen Videoanrufe abhängen. Dies war besonders wichtig, da große Videokonferenzen mit hohen Ressourcenanforderungen und Videoeffekte in Videokonferenzen immer häufiger verwendet wurden, als Mitarbeiter und Studierende von zu Hause aus arbeiten und lernen konnten. Im vergangenen Jahr wurde der Akkuverbrauch von Chrome für Videoanrufe um bis zu 30% verbessert. Für intensive Nutzung werden weitere Optimierungen folgen. Mozilla, Apple und Microsoft haben alle wesentliche Verbesserungen bei der Implementierung von WebRTC während der Pandemie vorgenommen, insbesondere bei der Einhaltung des jetzt formalisierten Standards.

Die Zukunft von WebRTC

WebRTC wird jetzt als W3C-Standard abgeschlossen, die Verbesserungen erfolgen jedoch weiterhin. Der neue Video-Codec AV1, der bis zu 50% der Bandbreite einspart, ist jetzt auch in WebRTC und Webbrowsern verfügbar. Durch kontinuierliche Verbesserungen der Open-Source-Codebasis werden Verzögerungen weiter reduziert und die Qualität des gestreamten Videos verbessert. WebRTC NV hat eine Initiative zur Entwicklung ergänzender APIs für neue Anwendungsfälle zusammengetragen. Dabei handelt es sich um Erweiterungen vorhandener APIs, die eine bessere Kontrolle über vorhandene Funktionen wie skalierbare Videocodierung bieten, sowie APIs, die Zugriff auf untergeordnete Komponenten ermöglichen. Letztere bietet Webentwicklern mehr Flexibilität für Innovationen durch die Einbindung benutzerdefinierter Hochleistungskomponenten von WebAssembly. Angesichts der wachsenden 5G-Netze und der Nachfrage nach interaktiven Diensten rechnen wir im kommenden Jahr mit einem stetigen Anstieg der Dienste, die auf WebRTC aufbauen.