Firefox 63: Unterstützung für neuen Video-Codec AV1
AV1 ist die neue Hoffnung im Bereich der Video-Codecs. Firefox 63 unterstützt die finale Version 1.0 des offenen und lizenzgebühren-freien Video-Codecs AV1.
Der Kern von Audio- und Video-Dateien sind sogenannte Codecs. Unterschiedliche Codecs besitzen unterschiedliche qualitative Eigenschaften. Viele verschiedene Medienformate und -Codecs und dazu eine nicht einheitliche Browser-Unterstützung machen das ganze Thema der Medienwiedergabe zu einem komplizierten Thema. Dazu sind einige qualitativ hochwertige Codecs wie H.264 für die Video-Wiedergabe nicht lizenzgebühren-frei, wieso Open Source-Browser wie Firefox dabei auf die Unterstützung durch das jeweilige Betriebssystem angewiesen sind, um entsprechend kodierte Videos überhaupt abspielen zu können.
Die neue Hoffnung im Bereich der Video-Wiedergabe hört auf den Namen AOMedia Video 1, oder kurz: AV1. Entwickelt wird dieser Codec von der Alliance for Open Media (AOMedia). Gründer dieser Allianz sind neben Mozilla auch noch Google, Microsoft, Intel, ARM, Nvidia, IBM, Cisco, Amazon und Netflix. Seit dem haben sich zahlreiche weitere Unterstützer angeschlossen, darunter Namen wie AMD, VideoLAN, Vidyo, CCN, Realtek und noch weitere.
Eine der wichtigsten Eigenschaften von AV1 ist sicher die Tatsache, dass es sich dabei um einen Open Source Codec handelt, der frei von jeglichen Lizenzgebühr-Ansprüchen ist. Nach Angaben von Mozilla kommt in 80 Prozent aller Videos, die wir uns im Web ansehen, patentierte Technologie zum Einsatz. Was vielen nicht klar ist: die Wiedergabe von Videos kostet Geld. Selbst wenn wir für die Wiedergabe von Videos nichts zahlen: sobald patentierte Technologie zum Einsatz kommt, muss jemand bezahlen. Jedes Jahr werden von vielen Firmen viele Millionen nur dafür bezahlt, dass wir kostenlos Videos in hoher Qualität konsumieren können. So müsste auch Mozilla jährlich knapp zehn Millionen Dollar bezahlen, würde Firefox nicht Ciscos Implementierung des H.264-Codecs für WebRTC nutzen, welche Cisco großzügigerweise kostenlos anbietet. Ein patentfreier Codec, welcher qualitativ allen bisherigen Codecs auch noch überlegen ist, ist daher ein riesiger Schritt.
Die Gründungsmitglieder Google, Mozilla und Cisco haben bereits lange vor der Gründung der Allianz an Video-Codecs gearbeitet und so bilden deren Entwicklungen die Grundlage für AV1. Google hatte zunächst am VP9-Nachfolger VP10 gearbeitet, der zu Gunsten von AV1 zurückgestellt worden ist. Neben Technologie von VP10 fließen in AV1 ebenfalls Technologie von Daala ein, dem Codec, an welchem Mozilla gemeinsam mit der Xiph Foundation entwickelt hat, sowie von Ciscos Thor-Codec. Ebenfalls fließen in AV1 Elemente aus Opus ein, einem von Mozilla, der Xiph Foundation und Skype entwickelten Audio-Codec.
Die technische Überlegenheit von AV1 gegenüber H.264 lässt sich ganz gut in Zahlen ausdrücken, indem man sagt, dass mit AV1 die gleiche Qualität bei etwa der halben Dateigröße wie bei H.264 erreicht werden kann.
Warum ist das wichtig? Kleinere Videos bedeuten weniger Daten, die der Nutzer herunterladen muss, und damit schnellere Streams und mehr Internet-Bandbreite für andere Dinge. Für Video-Portale und Streaming-Dienste bedeuten kleinere Videos erheblich geringere Kosten und damit mehr Profitabilität, womit selbst große Dienste Schwierigkeiten haben. Es ist gerade mal vier Jahre her, da hat selbst Google mit YouTube mit einem Jahres-Umsatz von sagenhaften vier Milliarden Dollar noch keinen Cent Gewinn erzielt, wie das Wall Street Journal berichtet. Auch wenn davon auszugehen ist, dass YouTube mittlerweile profitabel ist, veranschaulicht dies gut, wie teuer der Betrieb einer Video- und Streaming-Plattform ist und wie ein effizienter Codec dabei helfen kann, dass solche Dienste eine Zukunft haben ohne nur noch aus Werbung zu bestehen. Dies betrifft nicht nur Youtube, sondern einen großen Teil des Web. Nach Angaben von Mozilla gehen mehr als 70 Prozent des gesamten Web-Traffic auf Videos. Die Zahl soll in den nächsten Jahren sogar auf 80 Prozent steigen.
Die Freiheit von Patenten, die Überlegenheit gegenüber H.264 und die breite Unterstützung der Industrie (Browserhersteller, Chipsatz-Hersteller sowie Streaming-Dienstleister) bilden eine gute Voraussetzung dafür, dass sich AV1 zu heutigen Codecs durchsetzen kann. Zwar gibt es auch konkurrierende Codecs wie HEVC/H.265, HEVC/H.265 ist jedoch nicht frei von Patenten, was ein großer Nachteil gegenüber AV1 ist.
Die Nightly-Version von Firefox 63 unterstützt nun die finale Version 1.0 von AV1. Standardmäßig ist die AV1-Unterstützung noch deaktiviert und kann aktiviert werden, indem der Schalter media.av1.enabled auf true gesetzt wird. Was die Aktivierung in einer finalen Version von Firefox betrifft, ist Firefox 63 noch möglich, es kann aber sein, dass sich die Aktivierung wegen noch offener Sandboxing-Arbeiten auf Firefox 64 verschiebt. Firefox 63 erscheint aller Voraussicht nach am 23. Oktober 2018, Firefox 64 am 11. Dezember 2018.
Das Demo-Video wird jetzt nicht mehr wiedergegeben – 63.0a1 (20180729100102); media.av1.enabled=true:
https://demo.bitmovin.com/public/firefox/av1/
Das liegt daran, dass da eine alte AV1-Version verwendet wird. Das ist eine (sehr kurze), aber funktionierende Demo:
https://people.xiph.org/~tdaede/av1/akiyo_cif_short.webm
Leider ist das Kodieren von AV1 aktuell noch sehr, sehr, sehr langsam – kein Problem für NetFlix und Co, da deren Videos oft verteilt werden (so dass der Aufwand beim Kodieren in einem guten Verhältnis zu den Einsparungen beim Streamen steht) – für Leuten bei denen das einzelne Video nur selten gestreamt wird, sieht es noch nicht so gut aus.
Siehe: https://code.fb.com/video-engineering/av1-beats-x264-and-libvpx-vp9-in-practical-use-case/ [Fig 2, 3, 5 und 6 zeigt die Dateneffizienz, Fig 4 und 7 wie viel langsamer das Kodieren mit AV1 ist: 550mal bis 760mal langsamer als VP9 und 5000mal bis 7500mal langsamer als der verbreitete patentbehaftete H.264/AVC. Dafuer aber 35% bis 50% weniger Daten als H.264/AVC und 30% weniger als der (auch patentzahlungsfreie) VP9.]
Teils ist das normal für einen neuen Codec (Standardisieren geht vor Optimieren), z.T. liegt es auch an der Komplexität (wegen guter Komprimierung und um Patentverletzungen zu vermeiden). Mit Code-Optimierungen und in Zukunft auch noch Hardwareimplementierungen wird kodieren und dekodieren sicher deutlich schneller werden.
(Dekodieren ist aktuell kein so großes Problem, auch wenn Einsparungen besonders bei Smartphones sicherlich gut für die Akkulaufzeit ist und es sicherlich auch für die Bilder-pro-Sekunde-Rate bei hoher Auflösung hilft.)
Xiph und Mozilla arbeiten an einem eigenen AV1-Kodierer, der in Rust geschrieben ist: https://github.com/xiph/rav1e Der soll wohl um einiges schneller sein (auch wenn er noch nicht alles kann), das README spricht von aktuell "~10 fps encoding @ 480p".
Erwähnenswert ist sicherlich noch Apple, was bedeutet dass alle großen Webbrowser und Smartphonehersteller an Bord sind.
Ansonsten habe ich das Konzept "Gründungsmitglieder" noch nicht verstanden: Facebook und (insbesondere) Apple wurden erst recht spät Mitglieder von AOM aber beide zählen zu den "Founding Members".
Apple ist zwar schon an Board, von Safari hat man aber bisher noch kein Zeichen bezüglich Implementierung gesehen oder gehört. (WebKit Bugzilla Suche nach AV1)
Das mit den Founding Members leuchtet mir auch nich direkt ein. Die Suche hat auch nix ergeben.
gibt es schon Ankündigungen zu Hardware die das beschleunigt kann?
Das kann noch etwas dauern.
https://research.mozilla.org/av1-media-codecs/
Blick auf den anderen großen Browser: AV1 sollte in Chrome 69 (4. September) aktivierbar sein, wurde aber entfernt und AV1 gibt es jetzt wohl erst ab Chrome 70 (16. Oktober, Standard: aus).
Bei Firefox 63 sieht es aber so aus, als ob es bei dem AV1 eingebaut bleibt (Beta nächste Woche, Release 23. Oktober). vgl. auch AV1-Meta-Bug und Flag=True-Bug.
Auf Seiten der AV1-Bibliothek gibt es jedenfalls derzeit noch 4 "must fix"-Fehler, zwei davon sind zusätzlich noch "normative".
In Firefox 63 wird es schon eingebaut bleiben, aber der Plan für die standardmäßige Aktivierung ist mittlerweile sicher Firefox 64. 😉
Mit Firefox 63 Beta 3 (unter 32bit Windows 7) scheint AV1 auch nachdem man "media.av1.enabled" auf "true" gesetzt hat nicht zu klappen – zumindest wird https://people.xiph.org/~tdaede/av1/akiyo_cif_short.webm nicht abgespielt: "No video with supported format and MIME type found." 🙂
[In der .webm findet man die Textschnippsel "libwebm-0.2.1.0WA" und "aomenc 1.0.0-147-g050fb027d3".]
In der 32-Bit-Windows-Version ist AV1 noch deaktiviert.
AV1-Beispiele gibt es jetzt bei Youtube:
https://www.youtube.com/playlist?list=PLyqf6gJt7KuHBmeVzZteZUlNUQAVLwrZS
Siehe auch im doom9-Forum, was die vorhandenen Auflösungen diskutiert und auch auf die Playlist oben verweist.
Zitat von der Youtube-Playlist:
"Support for AV1 in MP4 within Media Source is available in Chrome 70, and Firefox Nightly builds newer than September 13 with the media.av1.enabled and media.mediasource.experimental.enabled prefs set."
Ob man letzteres wirklich braucht ist mir unklar, bei Mozilla steht zu "media.mediasource.experimental.enabled" folgendes, was nicht zu AV1 passt:
"Promise-based asynchronous append and remove of buffers to a SourceBuffer object using appendBufferAsync() and removeAsync()."
Jetzt gibt es auch Testsfilme von Netflix: http://download.opencontent.netflix.com/?prefix=AV1/
Verschoben auf Firefox 65.