Initializing... drag & drop files here
Supports: 3G2, 3GP, 3GPP, ASF, AV1, AVCHD +30 more
<video> element is not allowedAPNG is the animation extension to PNG. It adds three chunks to an otherwise ordinary PNG file — acTL for the frame and loop counts, fcTL for each frame's delay and disposal method, and fdAT for the frame pixels — and it became part of the core standard when the W3C published the PNG Specification Third Edition as a Recommendation on 24 June 2025. Before that it had circulated as a Mozilla-originated extension for two decades, which is why so much older documentation calls it "unofficial".
People reach for it when GIF is not good enough. GIF stores at most 256 colours per frame and only 1-bit transparency, so gradients band, film grain turns into dither noise, and anti-aliased edges pick up a hard halo against anything but the background they were composited on. APNG stores 24-bit colour with a full 8-bit alpha channel and compresses each frame losslessly, which makes it the better target for logo loops, UI micro-animations, stickers, and any clip where colour fidelity or clean transparency is the point.
It also degrades unusually well. A decoder that does not recognise the animation chunks is required to ignore them and render the static image, so an APNG in an old viewer, a thumbnailer or an image library shows its first frame as a normal PNG rather than failing. That is a meaningfully better failure mode than animated WebP, which older software may not render at all.
The cost is size. Because there is no motion prediction between frames — the mechanism that lets H.264 store a second of video in a few kilobytes — every frame is a complete lossless image. APNG is a short-loop format, not a video replacement. Anything longer than a few seconds belongs in video to MP4.
| Property | APNG | GIF | Animated WebP |
|---|---|---|---|
| Standardised by | W3C, PNG Specification Third Edition (Recommendation, 24 June 2025) | CompuServe GIF89a, 1989 | Google, WebP container specification |
| Colour per frame | 24-bit truecolour (16.7 million) | 256-colour palette | 24-bit truecolour |
| Transparency | Full 8-bit alpha | 1-bit, on or off | Full 8-bit alpha |
| Frame data | Always lossless | Lossless on a quantised palette | Lossy or lossless |
| Typical size from video frames | Largest | Middle | Smallest |
| Native browser support | About 95.9% globally per caniuse | Effectively universal | About 96.2% per caniuse |
| Where it is not supported | Shows the first frame as a normal PNG | Not an issue in practice | May not render at all |
| Audio | None | None | None |
| Control | Choices | What it changes |
|---|---|---|
| Framerate | 1, 2, 5, 8, 10 (default), 12, 15, 20, 25, 30, 50 FPS | Frames sampled per second of source, and the exact 1/N-second delay written on each. Frame count and file size scale with it almost linearly |
| Image resolution | Keep original (default), Preset Resolutions, Width, Height, Width x Height, Resolution Percentage | Scales every frame during extraction. Bytes track pixel count, so halving both dimensions cuts the file to roughly a quarter |
There is deliberately nothing else: no quality slider, no palette control, no loop-count setting and no trim. APNG frames are lossless by definition, the loop is always written as infinite, and the whole source clip is converted. Duration is therefore the third lever and usually the strongest one — cut the seconds you need with the video cutter before converting.
Three stages. The clip is decoded to a sequence of full-colour PNG frames at your chosen framerate, with the pixel format set to RGBA so any alpha in the source survives. Those frames are assembled into one APNG with an exact 1/N-second delay each and a loop count of zero. Finally a Zopfli optimisation pass recompresses the file losslessly — reassembling a five-second 854×480 test pattern this way, that pass trimmed the result from 3,716,972 to 3,616,869 bytes, about 2.7%, without altering a single pixel.
Yes, when the source has any. Frames are extracted in RGBA specifically so an alpha channel is carried through, and a ProRes 4444 MOV with 60% opaque pixels arrives in the APNG with those exact opacity values intact. Most video has no alpha at all — H.264 in MP4, MPEG-2 in VOB, and the great majority of camera and screen-capture formats are fully opaque — so for those the output is simply opaque too. Nothing is ever flattened onto a background colour.
Because a video codec stores mostly the differences between frames while APNG stores every frame in full and losslessly. That is a structural difference, not a settings problem: a five-second 854×480 test pattern occupying 832 KB as a transport stream reassembles to roughly 3.6 MB as a 50-frame APNG, about 4.3 times larger — and detailed, noisy footage sits at that end of the range. Lower the Framerate, drop Image resolution, and above all shorten the clip.
No — APNG has no audio track in the format at all, so any soundtrack is discarded. This is true of every animated-image format, GIF and animated WebP included. If you need picture and sound in one shareable file, video to MP4 is the target, and it will also be far smaller.
Not from this page. The acTL chunk is always written with a play count of zero, which the PNG specification defines as infinite repetition, and no loop-count control is exposed. A play-once file requires rewriting that chunk with a dedicated APNG utility, or moving to a video format where repetition is decided by the player or the HTML attribute.
You get a static PNG. The assembler collapses identical consecutive frames, so a locked-off shot with nothing moving — or a video built from a single still — reduces to one frame and the file is written with no animation chunk at all. It is a valid PNG that any viewer opens; it simply does not animate, because there was nothing to animate.
It does not, and both show up in the output. No deinterlacing filter is applied anywhere in the pipeline, so an interlaced 1080i or 480i source keeps its comb lines baked into every extracted frame. No tone-mapping is applied either, so PQ or HLG high-dynamic-range footage receives a plain conversion into 8-bit sRGB and usually looks flat. Deinterlace or tone-map before uploading if either applies.
The container is identical to PNG, so the file works as .apng or .png and any PNG decoder opens it. Chrome 59+, Firefox 3+, Safari 8+, Edge 79+ and Opera 46+ animate it inline — about 95.9% of browsers globally per caniuse — while everything else falls back to the first frame. To shrink an APNG you already have, compress APNG adds quality and target-size controls that this conversion page deliberately does not.