APNG to AVI Converter
Convert animated PNG (APNG) files to AVI video format directly in your browser. Free, private, no upload required - all processing happens client-side.
About
APNG (Animated Portable Network Graphics) stores lossless frame sequences with alpha transparency, but video editors, legacy media players, and hardware decoders rarely support it. Feeding an APNG into a pipeline that expects AVI will silently fail or produce a single static frame. This tool parses the APNG binary structure, extracts every frame with its delay_num รท delay_den timing, and muxes them into a RIFF-AVI 1.0 container with uncompressed DIB frames. The output plays in VLC, Windows Media Player, and imports cleanly into NLE software. All processing runs in your browser. No file leaves your machine.
Limitations: the converter produces uncompressed AVI (BI_RGB), so output files are large. For a 256ร256 animation with 100 frames, expect roughly 19 MB. Alpha channel is composited against a white background since AVI does not natively carry transparency. Frame timing is averaged to a constant FPS because AVI requires a fixed rate. Variable-delay APNGs will be approximated.
Formulas
Each APNG frame carries a frame control chunk (fcTL) specifying delay as a rational number. The per-frame duration in seconds is:
If delay_den = 0, the spec mandates treating it as 100. The average FPS for the entire animation is computed as:
where N is the total number of frames. AVI requires a constant frame rate stored as microseconds per frame in the avih header:
Each uncompressed frame occupies W ร H ร 3 bytes (BGR24). Rows are stored bottom-up and padded to 4-byte boundaries:
where W = width in pixels, H = height in pixels. The total movi list size is N ร (stride ร H + 8) bytes, where 8 accounts for each chunk's FourCC and size field.
Reference Data
| Property | APNG | AVI (Uncompressed) |
|---|---|---|
| Container | PNG (extended) | RIFF |
| Compression | Deflate (lossless) | None (BI_RGB) |
| Alpha Channel | Yes (8/16-bit) | No (composited) |
| Frame Rate | Variable per frame | Constant (fixed) |
| Max Resolution | 231 โ 1 px | 65535 ร 65535 px |
| Color Depth | Up to 48-bit + 16-bit ฮฑ | 24-bit BGR |
| Bit Order | Big-endian | Little-endian |
| Chunk Signature | 89 50 4E 47 | 52 49 46 46 |
| Animation Control | acTL chunk | avih + strh headers |
| Frame Data | fdAT / IDAT chunks | 00db DIB chunks |
| Index | Sequential chunks | idx1 index table |
| Browser Support | Firefox, Chrome, Edge, Safari | Via plugin only |
| Typical Use | Web animations, stickers | Video editing, archival |
| Streaming | Progressive decode | Requires full download |
| Metadata | tEXt, iTXt chunks | INFO LIST chunk |
| Loop Control | acTL num_plays field | No native loop flag |
| File Size (100 frames, 256ร256) | ~500 KB | ~19 MB |
| Specification | APNG 1.0 (Mozilla) | AVI RIFF (Microsoft, 1992) |