AV1 als Streaming-Codec für selbstgehostete Videos (und für archive.org)
Verfasst: Fr 10 Okt, 2025 12:28
Seit kurzem verwende ich AV1 mit einer Bitrate von ca. 1,3 Mbit/s für HD-/2K-Video als Codec für selbstgehostete bzw. auf archive.org hochgeladene Videos - und bin mittelschwer begeistert von dieser Lösung. Die Bildqualität ist auch bei schwierigem (verrauschtem, Raw gedrehtem Material) sehr gut bei dieser niedrigen Bitrate. Abspielen auf den von mir getesteten Browsern - Chrome in der Desktop- und Android-Version + Firefox - ist problemlos. Mit einer 64Kbit/s-Tonspur kommt so auf ungefähr 10 Megabyte pro Minute. Ein Videoarchiv mit 100 dreiminütigen Kurzvideos braucht also nur 3 GB Server-Speicherplatz.
AV1 ist ja schon länger im Gespräch, nur waren die bisherigen Codecs entweder viel zu rechenaufwändig für Desktop-Computer oder, bei annehmbaren Encodingzeiten, qualitativ nicht zufriedenstellend. Der Durchbruch ist IMO mit dem neueren (von Intel, Netflix und AOMedia gemeinsam entwickelten) SVT AV1-Codec erreicht, der zwar nicht GPU-beschleunigt ist, aber auf meinem Ryzen 9 3900X auf der höchsten Videoqualitäts- bzw. Kompressionseffizienzstufe praktikable 2fps schafft (also gut 12 Minuten Encoding für eine Minute Video). Der ist mittlerweile sowohl bei ffmpeg, als auch bei Handbrake an Board.
Mit Handbrake ist das AV1-Encoding sehr einfach. Für qualitativ bestes Encoding empfehle ich das SVT AV1-Preset 2 bei 15000 Kbit/s und 2-Pass-Encoding. Ich selbst verwende ffmpeg in einem Shell-Script wie folgt (mit Preset 10 für einen schnelleren ersten Durchgang, und Preset 2 für den zweiten Pass):
(Dieses Encoding ist allerdings für meine tonlosen und Raw gedrehten, nicht-rauschgefilterten Videos optimiert und macht heftigen Gebrauch von der Grain-Synthese, die Teil der AV1-Spezifikation ist, mit dem bis zum Anschlag hochgedrehten Parameter "-svtav1-params film-grain=50". Der Codec entrauscht dann das Material und schreibt den ursprünglichen Rauschgehalt als Metadaten in den Videostream; beim Abspielen/Decodieren wird dann synthetisches Rauschen/Grain in genau dem Maße hinzugefügt, der in diesen Metadaten spezifiziert ist.)
Solche AV1-Videodateien sind auch eine praktische Lösung für bessere Streaming-/Previewqualität auf archive.org. Archive.org scheint die niedrige Bitrate zu erkennen und bietet den AV1-Stream dann automatisch als Preview-/Streamingcodec an, und den eigenen, auf dem archive.org-Server transcodierten h264-Stream in 480p-Auflösung nur noch als zweiten Stream:
https://archive.org/details/2025-10-01- ... se.av1.mp4
Damit lassen sich die videoqualitativen Nachteile von archive.org als Streamingserver faktisch umschiffen bzw. aufheben, und man kriegt stattdessen eine Streamqualität auf Vimeo- oder Netflix-2K-Niveau (sogar in 10bit...). Das könnte eventuell für Vimeo-Geschädigte/-Flüchtlinge interessant sein, die eine nichtkommerzielle, werbefreie Hostinglösung (für ebenfalls nichtkommerzielle Videos) suchen.
AV1 ist ja schon länger im Gespräch, nur waren die bisherigen Codecs entweder viel zu rechenaufwändig für Desktop-Computer oder, bei annehmbaren Encodingzeiten, qualitativ nicht zufriedenstellend. Der Durchbruch ist IMO mit dem neueren (von Intel, Netflix und AOMedia gemeinsam entwickelten) SVT AV1-Codec erreicht, der zwar nicht GPU-beschleunigt ist, aber auf meinem Ryzen 9 3900X auf der höchsten Videoqualitäts- bzw. Kompressionseffizienzstufe praktikable 2fps schafft (also gut 12 Minuten Encoding für eine Minute Video). Der ist mittlerweile sowohl bei ffmpeg, als auch bei Handbrake an Board.
Mit Handbrake ist das AV1-Encoding sehr einfach. Für qualitativ bestes Encoding empfehle ich das SVT AV1-Preset 2 bei 15000 Kbit/s und 2-Pass-Encoding. Ich selbst verwende ffmpeg in einem Shell-Script wie folgt (mit Preset 10 für einen schnelleren ersten Durchgang, und Preset 2 für den zweiten Pass):
Code: Alles auswählen
#!/bin/sh
input="$*"
output="$input.av1.mp4"
ffmpeg -i "$input" -c:v libsvtav1 -preset 10 -b:v 2000k -g 240 -pix_fmt yuv420p10le -svtav1-params film-grain=50 -pass 1 -y "$output"
ffmpeg -i "$input" -c:v libsvtav1 -preset 2 -b:v 2000k -g 240 -pix_fmt yuv420p10le -svtav1-params film-grain=50 -pass 2 -y "$output"
Solche AV1-Videodateien sind auch eine praktische Lösung für bessere Streaming-/Previewqualität auf archive.org. Archive.org scheint die niedrige Bitrate zu erkennen und bietet den AV1-Stream dann automatisch als Preview-/Streamingcodec an, und den eigenen, auf dem archive.org-Server transcodierten h264-Stream in 480p-Auflösung nur noch als zweiten Stream:
https://archive.org/details/2025-10-01- ... se.av1.mp4
Damit lassen sich die videoqualitativen Nachteile von archive.org als Streamingserver faktisch umschiffen bzw. aufheben, und man kriegt stattdessen eine Streamqualität auf Vimeo- oder Netflix-2K-Niveau (sogar in 10bit...). Das könnte eventuell für Vimeo-Geschädigte/-Flüchtlinge interessant sein, die eine nichtkommerzielle, werbefreie Hostinglösung (für ebenfalls nichtkommerzielle Videos) suchen.