Google soeben angekündigt dass die kommende Version des Chrome-Browsers, Version 48, VP9-Unterstützung für WebRTC bieten wird. Dies ist ein wichtiger Meilenstein für WebRTC und Chrome, und zwar aus einer Reihe von Gründen. Um zu verstehen, warum, ist es sinnvoll, einen Blick auf die Geschichte der Video-Codec-Unterstützung in WebRTC und Google+ Hangouts, der beliebten Videokonferenz-App von Google, zu werfen.
Als Google+ Hangouts ursprünglich eingeführt wurde, verwendete es H.264 SVC, die skalierbare Videocodierungserweiterung von H.264, die Vidyo mitentwickelt hat. Die Nutzung der Skalierbarkeit im Videocodec ist entscheidend für die Implementierung eines radikal anderen Serverdesigns für Multipoint-Video, das in der Lage ist, eine noch nie dagewesene Bandbreite an Funktionen zu bieten: Fehlerresistenz und Lokalisierung, Ratenanpassung, personalisiertes Layout, Kaskadierung usw. Noch wichtiger ist, dass all dies mit extrem geringer Verzögerung (um eine Größenordnung geringer als bei einer typischen Transcoding-MCU), in großem Umfang und ohne jegliche Signalverarbeitung auf dem Server erfolgt. Vidyo hat dieses Serverdesign 2008 mit seinem patentierten VidyoRouter™-Produkt eingeführt.
Hangouts ging im August 2013 dazu über, den Open-Source-Videocodec VP8 zu verwenden, damit der Client unter anderem über WebRTC laufen kann, wie in Interviews mit leitenden Mitarbeitern von Google. Da VP8 keine räumliche Skalierbarkeit bietet, wurde eine einfachere Version davon, das so genannte Simulcasting, verwendet. Bei dieser Technik erzeugt ein Endpunkt mehrere Videoströme mit unterschiedlichen Bitraten und Auflösungen. Der Server empfängt beide und wählt aus, welchen er an die empfangenden Teilnehmer weiterleitet. (Wir haben später den Begriff "Selective Forwarding Unit" (SFU) geprägt, um den Betrieb dieser Server allgemein zu beschreiben).
Zur gleichen Zeit, als der Übergang zu VP8 vollzogen wurde, haben Vidyo und Google angekündigt dass Vidyo mit Google zusammenarbeiten wird, um eine skalierbare Erweiterung für den VP9-Videocodec als Teil des WebRTC-Client-Open-Source-Projekts zu entwickeln. Das Ziel ist es, die Leistungsfähigkeit von WebRTC mit den Vorteilen der Skalierbarkeit zu kombinieren, um den Endnutzern das bestmögliche Erlebnis zu bieten.
Die Aufnahme von VP9 in WebRTC in Chrome 48 stellt einen wichtigen Meilenstein in dieser Zusammenarbeit dar. Es ist die erste weithin verfügbare Softwareversion dieses neuen Codecs (außerhalb einer Flagge, auf allen Chrome-Plattformen). Die Version enthält die vorgeschlagene Standard-RTP-Paketierung für VP9, der gemeinsam mit Vidyo und Google entworfen und entwickelt wurde und die neuen Skalierbarkeitsfunktionen unterstützt. Räumliche und zeitliche Skalierbarkeitsfunktionen im Codec selbst sind bereits in den Code-Repositories für WebM und WebRTC enthalten.
Wir gehen davon aus, dass sie in zukünftigen Versionen des Chrome-Browsers in abwärtskompatibler Weise Einzug halten werden, sobald weitere Erfahrungen mit implementierten Anwendungen gesammelt wurden und geeignete API-Unterstützung auf der WebRTC-Ebene zur Verfügung gestellt wird.
Vidyo hat eine skalierbare Kodierung verwendet, um eine neue Server-Architektur für groß angelegte Videokommunikation in sehr hoher Qualität auf praktisch jedem Netzwerk und Gerät aufzubauen. Diese Architektur eignet sich hervorragend für Umgebungen, die einen großen Umfang erfordern und/oder in der Cloud gehostet werden. Außerdem ist sie von Natur aus Codec-agnostisch: Die Wahl des Codecs ist aus Sicht der Infrastruktur eine reine Geschäftsentscheidung. Solange die Skalierbarkeit gegeben ist, kann die Infrastruktur ihre Wirkung entfalten.
Wir freuen uns sehr, dass wir die bewährten Vorteile dieses Designs bald in die WebRTC-Welt einbringen können. Diese Version ist zwar der erste Schritt, aber wie man so schön sagt: Der erste Schritt ist die halbe Reise.