Qu’est-ce que l’AVIF animé ?
Un AVIF animé est un fichier AVIF qui stocke une séquence d’images AV1 : une piste d’images AV1 synchronisées dans le conteneur HEIF, que la spécification identifie par la marque avis. Il utilise la même extension .avif et le même type de média image/avif qu’un AVIF fixe et peut contenir une transparence alpha et des couleurs HDR.
Fonctionnement de l’AVIF animé
La spécification AVIF définit une séquence d’images comme un ensemble d’unités temporelles AV1 stockées dans une piste d’un fichier ISO Base Media, avec le type de gestionnaire pict, au lieu de la structure d’éléments utilisée pour une image fixe. La spécification identifie ces fichiers par la marque avis et indique qu’ils devraient la mentionner dans la boîte de type de fichier, mais elle exige uniquement qu’un fichier AVIF mentionne avif ou avis. Comme les règles MIAF sous-jacentes exigent au moins un élément d’image, le même fichier contient aussi une image fixe principale que les lecteurs limités aux éléments peuvent décoder. La transparence est stockée dans une seconde séquence AV1 monochrome marquée comme alpha. La synchronisation provient de la piste : chaque image a une durée exprimée en unités de l’échelle de temps de la piste, et le nombre de répétitions provient d’une liste de montage. Une séquence peut contenir des images qui dépendent d’images précédentes (libavif expose un intervalle d’images clés à cet effet) ; les images ne sont donc pas décodables indépendamment, sauf si le fichier est écrit avec chaque échantillon comme échantillon de synchronisation.
Points clés
- Ni l’extension
.avifni le type de médiaimage/avifne vous indiquent si un fichier est animé : la spécification attribue les deux aux fichiers fixes et aux séquences. Examinez plutôt l’intérieur du fichier. Un fichier de séquence contient une piste de séquence d’images et devrait mentionner la marqueavisdans sa boîte de type de fichier. Cette marque est recommandée, pas obligatoire ; l’absence deavisne prouve donc pas que le fichier est fixe ; analysez le fichier pour trouver la piste. libavif (depuis la version 1.1.0) signale sa présence après analyse viaimageSequenceTrackPresent. - Le décodage des AVIF fixes ne signifie pas qu’un client lit les séquences. Selon les données de caniuse consultées en octobre 2026, Firefox décodait les AVIF fixes depuis la version 93, mais ne lisait les séquences par défaut qu’à partir de la version 113. Le cas de Safari est moins net : WebKit a annoncé les AVIF fixes dans Safari 16.0 sur iOS 16 et les séquences dans Safari 16.1, caniuse n’attribue la prise en charge des séquences à Safari qu’à partir de la version 16.4, et un rapport de bug WebKit datant de décembre 2022 sur des anomalies de rendu des AVIF animés se termine par un commentaire indiquant que le correctif a été livré dans iOS 16.4.1 et macOS 13.3.1. Comme le type de média est identique, une vérification portant uniquement sur
image/avif, telle qu’une source<picture>avec un type déclaré, ne permet pas de distinguer les clients qui lisent les séquences de ceux qui décodent uniquement les images fixes. La spécification ne précise pas ce qu’affiche un client limité aux images fixes ; le fichier contient bien une image fixe principale qu’il peut décoder. - La vitesse de lecture et la lecture en boucle sont des métadonnées du conteneur, pas des réglages du codec. Les durées des images sont des nombres entiers d’unités de l’échelle de temps de la piste, et le nombre de répétitions provient d’une liste de montage. Lorsque cette liste manque, libavif indique que le nombre est inconnu et laisse l’application déterminer le comportement ; les lecteurs peuvent donc se comporter différemment. Si vous encodez avec libavif, choisissez explicitement l’échelle de temps et le nombre de répétitions : l’encodeur utilise par défaut une répétition infinie, et un nombre de répétitions positif ou nul
nentraîne la lecture de la séquencen + 1fois. - Les outils qui traitent les AVIF fixes peuvent supprimer l’animation. La documentation de sharp indique que les séquences d’images AVIF ne sont pas prises en charge, et un ticket public de sharp signale la perte de l’animation lors d’une conversion de GIF en AVIF. Le multiplexeur
avifde FFmpeg traite plusieurs images d’entrée comme un AVIF animé et dispose d’une optionloop. Vérifiez le nombre d’images en sortie de chaque étape de redimensionnement, d’optimisation ou de conversion avant de vous fier à un pipeline avec une entrée animée ; libavif, par exemple, indique le nombre d’images d’une séquence décodée viaimageCount. Sélectionnez la piste comme source (AVIF_DECODER_SOURCE_TRACKS) avant de compter : le choix par défaut suit la marque principale du fichier et peut sélectionner l’image fixe principale à la place.
Quand l’AVIF animé est utile
Choisissez l’AVIF animé pour remplacer le GIF dans les boucles photographiques ou de type vidéo lorsque vos navigateurs cibles lisent les séquences AVIF, et conservez une solution de repli, car les clients qui décodent les AVIF fixes ne lisent pas tous les séquences. Pour les animations sans perte de graphismes en aplats de couleur, comparez d’abord les résultats avec APNG et WebP animé sur votre propre contenu : dans un ticket libavif intitulé « Animation AVIF sans perte beaucoup plus volumineuse qu’APNG ou WebP », des contributeurs du projet ont répondu en 2022 que l’AVIF sans perte est efficace pour les images de type photographique et devrait être bien moins performant que WebP sans perte pour les contenus graphiques, ce que l’un d’eux a attribué à la limitation du codec AV1 à des blocs de taille 4x4 en mode sans perte.
Comment Transloadit vous aide avec l’AVIF animé
Le tableau des formats d’image de Transloadit répertorie AVIF comme un format que ses Robots basés sur ImageMagick, dont /image/resize, peuvent lire et écrire. La documentation du Robot /image/resize décrit le traitement des animations via son paramètre frame uniquement pour les GIF animés.
Aucune des deux pages n’indique si un AVIF animé conserve ses images lors d’un redimensionnement ou d’une conversion, et aucune Assembly n’a été exécutée pour cette entrée. Traitez un fichier animé représentatif avec votre Assembly et vérifiez le nombre d’images du résultat avant de vous y fier.
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- AV1 Image File Format (AVIF) v1.2.0 : séquences d’images (section 3), séquences alpha (section 4.1), marques et type de média (6), contraintes générales (7)
- libavif 1.3.0 avif.h : nombre de répétitions, synchronisation des images, source du décodeur, imageCount, imageSequenceTrackPresent, échelle de temps de l’encodeur
- Can I use : format d’image AVIF (notes sur les séquences d’images animées par version de navigateur)
- WebKit : fonctionnalités WebKit dans Safari 16.1 (AVIF animé)
- Bug WebKit 248755 : le rendu des AVIF animés semble présenter des anomalies ou être défectueux
- MDN : guide des types et formats de fichiers image (section AVIF)
- Options de sortie de sharp : avif (indique que les séquences d’images AVIF ne sont pas prises en charge)
- Ticket sharp #4250 : l’animation est perdue après une conversion de GIF en AVIF
- Ticket libavif #1244 : animation AVIF sans perte beaucoup plus volumineuse qu’APNG ou WebP
- Documentation des formats FFmpeg : multiplexeur avif