Was ist animiertes AVIF?

Animiertes AVIF ist eine AVIF-Datei, die eine AV1-Bildsequenz speichert: eine Spur zeitgesteuerter AV1-Frames im HEIF-Container, die die Spezifikation mit der Formatkennung avis kennzeichnet. Sie verwendet dieselbe Dateiendung .avif und denselben Medientyp image/avif wie ein AVIF-Einzelbild und kann Alphatransparenz und HDR-Farben enthalten.

So funktioniert animiertes AVIF

Die AVIF-Spezifikation definiert eine Bildsequenz als eine Menge zeitlicher AV1-Einheiten, die in einer Spur einer ISO-Base-Media-Datei mit dem Handler-Typ pict gespeichert werden, statt in der für ein Einzelbild verwendeten Elementstruktur. Die Spezifikation kennzeichnet solche Dateien mit der Formatkennung avis und empfiehlt, diese in der Dateityp-Box aufzuführen. Verbindlich verlangt sie jedoch nur, dass eine AVIF-Datei avif oder avis aufführt. Da die zugrunde liegenden MIAF-Regeln mindestens ein Bildelement verlangen, enthält dieselbe Datei auch ein primäres Einzelbild, das Reader decodieren können, die nur Elemente lesen. Transparenz wird als zweite, monochrome AV1-Sequenz gespeichert, die als Alpha gekennzeichnet ist. Die Zeitsteuerung stammt aus der Spur: Jeder Frame hat eine Dauer in Einheiten der Zeitskala der Spur, und die Wiederholungsanzahl stammt aus einer Editierliste. Eine Sequenz kann Frames enthalten, die von früheren Frames abhängen (libavif bietet dafür ein Schlüsselbildintervall). Daher lassen sich Frames nur dann unabhängig decodieren, wenn die Datei mit jedem Sample als Sync-Sample geschrieben wird.

Wichtige Fakten

  1. Weder die Dateiendung .avif noch der Medientyp image/avif verrät, ob eine Datei animiert ist: Die Spezifikation weist beide sowohl Einzelbilddateien als auch Sequenzen zu. Prüfen Sie stattdessen den Dateiinhalt. Eine Sequenzdatei enthält eine Bildsequenzspur und sollte die Formatkennung avis in ihrer Dateityp-Box aufführen. Die Kennung ist empfohlen, nicht vorgeschrieben. Fehlt avis, beweist das daher nicht, dass die Datei ein Einzelbild ist; parsen Sie die Datei, um die Spur zu finden. libavif meldet sie seit Version 1.1.0 nach dem Parsen als imageSequenceTrackPresent.
  2. Dass ein Client AVIF-Einzelbilder decodiert, bedeutet nicht, dass er Sequenzen abspielt. Laut den im Oktober 2026 geprüften Daten von caniuse decodierte Firefox AVIF-Einzelbilder ab Version 93, spielte Sequenzen aber erst ab Version 113 standardmäßig ab. Bei Safari ist die Lage weniger eindeutig: WebKit kündigte AVIF-Einzelbilder für Safari 16.0 unter iOS 16 und Sequenzen für Safari 16.1 an. caniuse führt Safari erst ab Version 16.4 als Browser auf, der Sequenzen abspielt. Ein WebKit-Fehlerbericht vom Dezember 2022 zur fehlerhaften Darstellung animierter AVIF endet mit einem Kommentar, laut dem die Korrektur mit iOS 16.4.1 und macOS 13.3.1 ausgeliefert wurde. Da der Medientyp identisch ist, kann eine alleinige Prüfung von image/avif, etwa eine Quelle mit Typangabe für <picture>, Clients, die Sequenzen abspielen, nicht von solchen unterscheiden, die nur Einzelbilder decodieren. Die Spezifikation sagt nicht, was ein Client anzeigt, der nur Einzelbilder unterstützt; die Datei enthält jedoch ein primäres Einzelbild, das er decodieren kann.
  3. Wiedergabegeschwindigkeit und Schleifenwiedergabe sind Container-Metadaten, keine Codec-Einstellungen. Die Dauer jedes Frames ist eine ganzzahlige Anzahl von Einheiten der Zeitskala der Spur, und die Wiederholungsanzahl stammt aus einer Editierliste. Fehlt die Editierliste, meldet libavif die Anzahl als unbekannt und überlässt das Verhalten der Anwendung, sodass sich Player unterschiedlich verhalten können. Wenn Sie mit libavif codieren, legen Sie Zeitskala und Wiederholungsanzahl bewusst fest: Der Encoder verwendet standardmäßig unendliche Wiederholung, und bei einer nicht negativen Anzahl n wird die Sequenz so oft abgespielt: n + 1.
  4. Tools, die AVIF-Einzelbilder verarbeiten, können die Animation verwerfen. Die Dokumentation von sharp erklärt, dass AVIF-Bildsequenzen nicht unterstützt werden. In einem öffentlichen sharp-Issue wird berichtet, dass beim Konvertieren von GIF zu AVIF die Animation verloren geht. Der Muxer avif von FFmpeg behandelt mehr als einen Eingabe-Frame als animiertes AVIF und bietet eine Option namens loop. Prüfen Sie die Frame-Anzahl der Ausgabe nach jeder Größenänderung, Optimierung oder Konvertierung, bevor Sie sich bei animierten Eingaben auf eine Pipeline verlassen. libavif meldet beispielsweise die Anzahl der Bilder einer decodierten Sequenz als imageCount. Wählen Sie vor dem Zählen die Spur als Quelle (AVIF_DECODER_SOURCE_TRACKS): Die Standardeinstellung richtet sich nach der Hauptformatkennung der Datei und kann stattdessen das primäre Einzelbild auswählen.

Wann animiertes AVIF wichtig ist

Wählen Sie animiertes AVIF als GIF-Ersatz für fotografische oder videoartige Schleifen, wenn Ihre Zielbrowser AVIF-Sequenzen abspielen. Halten Sie eine Ausweichlösung bereit, denn nicht alle Clients, die AVIF-Einzelbilder decodieren, spielen auch Sequenzen ab. Vergleichen Sie für verlustfreie Animationen von Grafiken mit einfarbigen Flächen zunächst APNG und animiertes WebP anhand Ihrer eigenen Inhalte: In einem libavif-Issue mit dem Titel „Lossless AVIF animation much larger than APNG or WebP“ antworteten Projektmitwirkende im Jahr 2022, dass verlustfreies AVIF für fotoähnliche Bilder effizient sei und bei grafischen Inhalten voraussichtlich deutlich schlechter abschneide als verlustfreies WebP. Einer von ihnen führte dies darauf zurück, dass der AV1-Codec im verlustfreien Modus auf Blöcke der Größe 4x4 beschränkt ist.

So hilft Transloadit bei animiertem AVIF

Transloadits Bildformattabelle führt AVIF als Format auf, das seine ImageMagick-basierten Robots, darunter /image/resize, lesen und schreiben können. Die Dokumentation zu /image/resize beschreibt die Animationsverarbeitung mit dem Parameter frame nur für animierte GIF.

Keine der beiden Seiten sagt, ob ein animiertes AVIF seine Frames bei einer Größenänderung oder Konvertierung behält. Für diesen Eintrag wurde keine Assembly ausgeführt. Verarbeiten Sie eine repräsentative animierte Datei mit Ihrer Assembly und prüfen Sie die Frame-Anzahl des Ergebnisses, bevor Sie sich darauf verlassen.

Entdecken Sie Transloadits Möglichkeiten für Dateiformate & Komprimierung

Quellen

Machen Sie aus Medienwissen eine funktionierende Pipeline

Verbinden Sie Uploads, Verarbeitung, KI, Storage und Auslieferung über eine deklarative API – um Encoding-Stack, Skalierung und ständig wechselnde Formate müssen Sie sich nicht selbst kümmern.

Transloadit kostenlos ausprobieren