¿Qué es AVIF animado?
Un AVIF animado es un archivo AVIF que almacena una secuencia de imágenes AV1: una pista de fotogramas AV1 temporizados dentro del contenedor HEIF, que la especificación identifica con la marca avis. Usa la misma extensión .avif y el mismo tipo de medio image/avif que un AVIF estático y puede incluir transparencia alfa y color HDR.
Cómo funciona AVIF animado
La especificación AVIF define una secuencia de imágenes como un conjunto de unidades temporales AV1 almacenadas en una pista de un archivo ISO Base Media, con el tipo de controlador pict, en lugar de la estructura de elementos que se usa para una imagen estática. La especificación identifica estos archivos con la marca avis y recomienda incluirla en la caja de tipo de archivo, pero solo exige que un archivo AVIF incluya avif o avis. Como las reglas subyacentes de MIAF exigen al menos un elemento de imagen, el mismo archivo también contiene una imagen estática primaria que los lectores que solo admiten elementos pueden decodificar. La transparencia se transmite como una segunda secuencia AV1 monocromática marcada como alfa. La temporización proviene de la pista: cada fotograma tiene una duración contada en unidades de la escala de tiempo de la pista, y el número de repeticiones se obtiene de una lista de edición. Una secuencia puede contener fotogramas que dependen de fotogramas anteriores (libavif permite configurar un intervalo entre fotogramas clave para esto), por lo que los fotogramas no se pueden decodificar de forma independiente a menos que el archivo se escriba con todas las muestras como muestras de sincronización.
Datos clave
- Ni la extensión
.avifni el tipo de medioimage/avifindican si un archivo es animado: la especificación asigna ambos tanto a archivos estáticos como a secuencias. Examina el interior del archivo. Un archivo de secuencia contiene una pista de secuencia de imágenes y debería incluir la marcaavisen su caja de tipo de archivo. La marca es recomendable, pero no obligatoria, así que la ausencia deavisno demuestra que el archivo sea estático; analiza el archivo para encontrar la pista. libavif (desde 1.1.0) informa de su presencia tras el análisis medianteimageSequenceTrackPresent. - Decodificar AVIF estático no significa que un cliente reproduzca secuencias. Según los datos de caniuse consultados en octubre de 2026, Firefox decodificaba AVIF estático desde la versión 93, pero solo reproducía secuencias de forma predeterminada desde la versión 113. El caso de Safari es menos claro: WebKit anunció AVIF estático en Safari 16.0 para iOS 16 y secuencias en Safari 16.1; caniuse considera que Safari reproduce secuencias solo desde la versión 16.4, y un informe de error de WebKit de diciembre de 2022 sobre fallos en la renderización de AVIF animado termina con un comentario que indica que la corrección se publicó en iOS 16.4.1 y macOS 13.3.1. Como el tipo de medio es idéntico, una comprobación basada únicamente en
image/avif, como una fuente<picture>con tipo declarado, no puede distinguir los clientes que reproducen secuencias de los que solo decodifican imágenes estáticas. La especificación no indica qué muestra un cliente que solo admite imágenes estáticas; el archivo sí contiene una imagen estática primaria que puede decodificar. - La velocidad de reproducción y la reproducción en bucle son metadatos del contenedor, no ajustes del códec. Las duraciones de los fotogramas son cantidades enteras de unidades de la escala de tiempo de la pista, y el número de repeticiones proviene de una lista de edición. Cuando falta la lista de edición, libavif informa que el número es desconocido y deja el comportamiento en manos de la aplicación, por lo que los reproductores pueden comportarse de forma distinta. Si haces encoding con libavif, establece deliberadamente la escala de tiempo y el número de repeticiones: el codificador usa la repetición infinita de forma predeterminada, y un número no negativo
nhace que la secuencia se reproduzcan + 1veces. - Las herramientas que procesan AVIF estático pueden eliminar la animación. La documentación de sharp indica que las secuencias de imágenes AVIF no son compatibles, y una incidencia pública de sharp informa de la pérdida de animación al convertir GIF a AVIF. El multiplexor
avifde FFmpeg trata las entradas de más de un fotograma como un AVIF animado y tiene una opciónloop. Comprueba el número de fotogramas de la salida de cada paso de cambio de tamaño, optimización o conversión antes de confiar en un pipeline con una entrada animada; libavif, por ejemplo, informa del número de imágenes de una secuencia decodificada medianteimageCount. Selecciona la fuente de la pista (AVIF_DECODER_SOURCE_TRACKS) antes de contar: la selección predeterminada sigue la marca principal del archivo y puede elegir la imagen estática primaria en su lugar.
Cuándo es relevante AVIF animado
Elige AVIF animado como alternativa a GIF para bucles fotográficos o similares a video cuando los navegadores de destino reproduzcan secuencias AVIF, y conserva una alternativa, porque no todos los clientes que decodifican AVIF estático reproducen secuencias. Para animaciones sin pérdida de gráficos con colores planos, compara primero APNG y WebP animado con tu propio contenido: en una incidencia de libavif titulada «La animación AVIF sin pérdida es mucho más grande que APNG o WebP», colaboradores del proyecto respondieron en 2022 que AVIF sin pérdida es eficiente para imágenes de tipo fotográfico y que se espera que tenga un rendimiento mucho peor que WebP sin pérdida con contenido gráfico, algo que uno de ellos atribuyó a que el códec AV1 está limitado a bloques de 4x4 en modo sin pérdida.
Cómo ayuda Transloadit con AVIF animado
La tabla de formatos de imagen de Transloadit incluye AVIF entre los formatos que sus Robots basados en ImageMagick, incluido /image/resize, pueden leer y escribir. La documentación de /image/resize describe el manejo de animaciones mediante su parámetro frame únicamente para GIF animado.
Ninguna de las dos páginas indica si un AVIF animado conserva sus fotogramas tras un cambio de tamaño o una conversión, y no se ejecutó ninguna Assembly para esta entrada. Procesa un archivo animado representativo con tu Assembly y comprueba el número de fotogramas del resultado antes de depender de él.
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- Formato de archivo de imagen AV1 (AVIF) v1.2.0: secuencias de imágenes (sección 3), secuencias alfa (sección 4.1), marcas y tipo de medio (6), restricciones generales (7)
- avif.h de libavif 1.3.0: número de repeticiones, temporización de imágenes, fuente del decodificador, imageCount, imageSequenceTrackPresent, escala de tiempo del codificador
- Can I use: formato de imagen AVIF (notas sobre secuencias de imágenes animadas por versión del navegador)
- WebKit: funciones de WebKit en Safari 16.1 (AVIF animado)
- Error de WebKit n.º 248755: la renderización de AVIF animado parece presentar fallos
- MDN: guía de tipos y formatos de archivos de imagen (sección AVIF)
- Opciones de salida de sharp: avif (indica que no se admiten secuencias de imágenes AVIF)
- Incidencia de sharp n.º 4250: la animación se pierde al convertir GIF a AVIF
- Incidencia de libavif n.º 1244: la animación AVIF sin pérdida es mucho más grande que APNG o WebP
- Documentación de formatos de FFmpeg: multiplexor avif