What is Animated AVIF?
Animated AVIF is an AVIF file that stores an AV1 image sequence: a track of timed AV1 frames in the HEIF container, which the specification identifies with the avis brand. It uses the same .avif extension and image/avif media type as a still AVIF and can carry alpha transparency and HDR color.
How Animated AVIF works
The AVIF specification defines an image sequence as a set of AV1 temporal units stored in a track of an ISO Base Media file, with the handler type pict, instead of the item structure used for a still image. The specification identifies such files with the avis brand and says they should list it in the file-type box, but it requires only that an AVIF file list avif or avis. Because the underlying MIAF rules require at least one image item, the same file also holds a primary still image that item-only readers can decode. Transparency travels as a second, monochrome AV1 sequence marked as alpha. Timing comes from the track: each frame has a duration counted in units of the track’s timescale, and the repeat count is taken from an edit list. A sequence may contain frames that depend on earlier frames (libavif exposes a keyframe interval for this), so frames are not independently decodable unless the file is written with every sample as a sync sample.
Key facts
- Neither the
.avifextension nor theimage/avifmedia type tells you whether a file is animated: the specification assigns both to still files and to sequences. Look inside the file instead. A sequence file contains an image-sequence track and should list theavisbrand in its file-type box. The brand is recommended, not required, so a missingavisdoes not prove the file is still; parse the file to find the track. libavif (since 1.1.0) reports it after parsing asimageSequenceTrackPresent. - Decoding still AVIF does not mean a client plays sequences. In caniuse data checked in October 2026, Firefox decoded still AVIF from version 93 but played sequences by default only from 113. Safari is less clear-cut: WebKit announced still AVIF in Safari 16.0 on iOS 16 and sequences in Safari 16.1, caniuse counts Safari as playing sequences only from version 16.4, and a December 2022 WebKit bug report of glitchy animated AVIF rendering ends with a comment that the fix shipped in iOS 16.4.1 and macOS 13.3.1. Because the media type is identical, a check on
image/avifalone, such as a typed<picture>source, cannot separate clients that play sequences from clients that only decode stills. The specification does not say what a stills-only client displays; the file does contain a primary still image it can decode. - Playback speed and looping are container metadata, not codec settings. Frame durations are integer counts of the track timescale, and the repeat count comes from an edit list. When the edit list is missing, libavif reports the count as unknown and leaves the behavior to the application, so players can differ. If you encode with libavif, set the timescale and repetition count deliberately: the encoder defaults to infinite repetition, and a non-negative count
nplays the sequencen + 1times. - Tools that handle still AVIF can drop the animation. The sharp documentation states that AVIF image sequences are not supported, and a public sharp issue reports animation lost when converting GIF to AVIF. FFmpeg’s
avifmuxer treats more than one input frame as an animated AVIF and has aloopoption. Check the frame count of the output from every resize, optimize, or convert step before trusting a pipeline with animated input; libavif, for example, reports the number of images in a decoded sequence asimageCount. Select the track source (AVIF_DECODER_SOURCE_TRACKS) before counting: the default follows the file’s major brand and can pick the primary still image instead.
When Animated AVIF matters
Choose animated AVIF as a GIF replacement for photographic or video-like loops when your target browsers play AVIF sequences, and keep a fallback, because clients that decode still AVIF do not all play sequences. For lossless animation of flat-color graphics, compare against APNG and animated WebP on your own content first: in a libavif issue titled “Lossless AVIF animation much larger than APNG or WebP”, project contributors answered in 2022 that lossless AVIF is efficient for photo-like images and is expected to do much worse than lossless WebP on graphical content, which one of them attributed to the AV1 codec being limited to 4x4 blocks in lossless mode.
How Transloadit helps with Animated AVIF
Transloadit’s image formats table lists AVIF as a format that its ImageMagick-based Robots, including /image/resize, can read and write. The /image/resize documentation describes animation handling, through its frame parameter, only for animated GIF.
Neither page says whether an animated AVIF keeps its frames through a resize or conversion, and no Assembly was run for this entry. Run a representative animated file through your Assembly and check the frame count of the result before depending on it.
Explore Transloadit’s file formats & compression capabilities
Sources
- AV1 Image File Format (AVIF) v1.2.0: image sequences (section 3), alpha sequences (section 4.1), brands and media type (6), general constraints (7)
- libavif 1.3.0 avif.h: repetition count, image timing, decoder source, imageCount, imageSequenceTrackPresent, encoder timescale
- Can I use: AVIF image format (notes on animated image sequences per browser version)
- WebKit: WebKit Features in Safari 16.1 (Animated AVIF)
- WebKit bug 248755: Animated AVIF rendering seems glitched/broken
- MDN: Image file type and format guide (AVIF section)
- sharp output options: avif (states that AVIF image sequences are not supported)
- sharp issue #4250: Animation is lost after Gif to Avif
- libavif issue #1244: Lossless AVIF animation much larger than APNG or WebP
- FFmpeg Formats Documentation: avif muxer