O que é AVIF animado?
Um AVIF animado é um arquivo AVIF que armazena uma sequência de imagens AV1: uma trilha de quadros AV1 temporizados no contêiner HEIF, que a especificação identifica com a marca avis. Ele usa a mesma extensão .avif e o mesmo tipo de mídia image/avif de um AVIF estático e pode incluir transparência alfa e cores HDR.
Como funciona o AVIF animado
A especificação AVIF define uma sequência de imagens como um conjunto de unidades temporais AV1 armazenadas em uma trilha de um arquivo ISO Base Media, com o tipo de manipulador pict, em vez da estrutura de itens usada para uma imagem estática. A especificação identifica esses arquivos com a marca avis e diz que eles devem listá-la na caixa de tipo de arquivo, mas exige apenas que um arquivo AVIF liste avif ou avis. Como as regras subjacentes do MIAF exigem pelo menos um item de imagem, o mesmo arquivo também contém uma imagem estática primária que leitores compatíveis apenas com itens podem decodificar. A transparência é transportada como uma segunda sequência AV1, monocromática e marcada como alfa. A temporização vem da trilha: cada quadro tem uma duração contada em unidades da escala de tempo da trilha, e o número de repetições é obtido de uma lista de edição. Uma sequência pode conter quadros que dependem de quadros anteriores (a libavif disponibiliza um intervalo de quadros-chave para isso), portanto os quadros não podem ser decodificados de forma independente, a menos que o arquivo seja gravado com todas as amostras como amostras de sincronização.
Informações essenciais
- Nem a extensão
.avifnem o tipo de mídiaimage/avifinformam se um arquivo é animado: a especificação atribui ambos a arquivos estáticos e a sequências. Examine o conteúdo do arquivo. Um arquivo de sequência contém uma trilha de sequência de imagens e deve listar a marcaavisna caixa de tipo de arquivo. A marca é recomendada, mas não obrigatória, portanto a ausência deavisnão prova que o arquivo seja estático; analise a estrutura do arquivo para encontrar a trilha. A libavif (desde a versão 1.1.0) informa a presença da trilha após essa análise comoimageSequenceTrackPresent. - Decodificar AVIF estático não significa que um cliente reproduza sequências. Nos dados do caniuse consultados em outubro de 2026, o Firefox decodificava AVIF estático desde a versão 93, mas só reproduzia sequências por padrão a partir da versão 113. No Safari, a situação é menos clara: o WebKit anunciou AVIF estático no Safari 16.0 no iOS 16 e sequências no Safari 16.1, o caniuse considera que o Safari reproduz sequências apenas a partir da versão 16.4, e um relato de bug do WebKit de dezembro de 2022 sobre problemas na renderização de AVIF animado termina com um comentário de que a correção foi disponibilizada no iOS 16.4.1 e no macOS 13.3.1. Como o tipo de mídia é idêntico, uma verificação apenas de
image/avif, como uma origem<picture>com tipo definido, não consegue distinguir clientes que reproduzem sequências daqueles que só decodificam imagens estáticas. A especificação não diz o que um cliente compatível apenas com imagens estáticas exibe; o arquivo contém uma imagem estática primária que ele pode decodificar. - A velocidade de reprodução e a repetição são metadados do contêiner, não configurações do codec. As durações dos quadros são contagens inteiras da escala de tempo da trilha, e o número de repetições vem de uma lista de edição. Quando a lista de edição está ausente, a libavif informa que a contagem é desconhecida e deixa o comportamento a cargo da aplicação, portanto os reprodutores podem se comportar de formas diferentes. Se você codificar com a libavif, defina deliberadamente a escala de tempo e o número de repetições: o codificador usa repetição infinita por padrão, e uma contagem não negativa
nreproduz a sequêncian + 1vezes. - Ferramentas que lidam com AVIF estático podem descartar a animação. A documentação do sharp afirma que sequências de imagens AVIF não são compatíveis, e uma issue pública do sharp relata a perda da animação ao converter GIF em AVIF. O multiplexador
avifdo FFmpeg trata mais de um quadro de entrada como um AVIF animado e tem uma opçãoloop. Verifique o número de quadros na saída de cada etapa de redimensionamento, otimização ou conversão antes de confiar em um pipeline com entrada animada; a libavif, por exemplo, informa o número de imagens em uma sequência decodificada comoimageCount. Selecione a origem da trilha (AVIF_DECODER_SOURCE_TRACKS) antes da contagem: o padrão segue a marca principal do arquivo e pode selecionar a imagem estática primária.
Quando o AVIF animado é relevante
Escolha AVIF animado como substituto do GIF para animações em repetição com fotografias ou conteúdo semelhante a vídeo quando seus navegadores de destino reproduzirem sequências AVIF, e mantenha uma alternativa, pois nem todos os clientes que decodificam AVIF estático reproduzem sequências. Para animações sem perdas de elementos gráficos com cores uniformes, compare primeiro com APNG e WebP animado usando seu próprio conteúdo: em uma issue da libavif intitulada “Animação AVIF sem perdas muito maior que APNG ou WebP”, colaboradores do projeto responderam em 2022 que o AVIF sem perdas é eficiente para imagens semelhantes a fotografias e que se espera um desempenho muito pior que o do WebP sem perdas em conteúdo gráfico, o que um deles atribuiu à limitação do codec AV1 a blocos de 4x4 no modo sem perdas.
Como a Transloadit ajuda com AVIF animado
A tabela de formatos de imagem da Transloadit lista AVIF como um formato que seus Robots baseados no ImageMagick, incluindo /image/resize, podem ler e gravar. A documentação de /image/resize descreve o tratamento de animações, por meio do parâmetro frame, apenas para GIF animado.
Nenhuma das páginas informa se um AVIF animado mantém seus quadros após um redimensionamento ou uma conversão, e nenhuma Assembly foi executada para este verbete. Processe um arquivo animado representativo na sua Assembly e verifique o número de quadros do resultado antes de depender desse comportamento.
Explore os formatos de arquivo e os recursos de compressão da Transloadit
Fontes
- AV1 Image File Format (AVIF) v1.2.0: sequências de imagens (seção 3), sequências alfa (seção 4.1), marcas e tipo de mídia (6), restrições gerais (7)
- libavif 1.3.0 avif.h: número de repetições, temporização de imagens, origem do decodificador, imageCount, imageSequenceTrackPresent, escala de tempo do codificador
- Can I use: formato de imagem AVIF (notas sobre sequências de imagens animadas por versão do navegador)
- WebKit: recursos do WebKit no Safari 16.1 (AVIF animado)
- Bug do WebKit 248755: a renderização de AVIF animado parece apresentar falhas ou estar quebrada
- MDN: guia de tipos e formatos de arquivos de imagem (seção sobre AVIF)
- Opções de saída do sharp: avif (afirma que sequências de imagens AVIF não são compatíveis)
- Issue do sharp #4250: a animação é perdida após a conversão de GIF em AVIF
- Issue da libavif #1244: animação AVIF sem perdas muito maior que APNG ou WebP
- Documentação de formatos do FFmpeg: multiplexador avif