JPG to AVIF converter
Convert JPG images to AVIF format
AVIF is the most efficient still format widely available today, and a JPEG library is the most common thing people point it at. The conversion decodes your photo and hands the pixels to the AV1 encoder inside the browser, which typically produces a file a third to a half the size at a quality most viewers cannot distinguish. Two caveats shape the page. The encode is genuinely slow, because AV1 searches hard for its savings. And only Chromium browsers can perform it - elsewhere the canvas quietly falls back to PNG data.
Key facts about JPG to AVIF converter
| How it encodes | A single AV1 intra-coded frame inside a HEIF container, produced by calling the canvas with the image/avif type. |
|---|---|
| Where it works | Chrome, Edge and other Chromium builds encode AVIF. Firefox and Safari can only display it, and will hand back PNG bytes named .avif instead. |
| Typical saving | A 1.5 MB camera JPEG usually lands between 500 and 800 KB at quality 90, with larger savings on soft or low-detail photographs. |
| Second-generation loss | This is lossy to lossy, so the encoder has to reproduce the JPEG's existing artifacts as well as the picture - always convert from the best original you have. |
| Encode time | Seconds per image rather than milliseconds. A batch of twenty full-resolution photos will keep a core busy for a while. |
| Quality slider | Runs 30 to 100 and defaults to 90. AVIF degrades gracefully, so 70 to 80 is often still acceptable for web delivery. |
| Transparency | AVIF supports alpha, but a JPEG has none, so the result is opaque - this pair cannot produce a cut-out. |
| Metadata | Camera tags, GPS coordinates and the ICC profile stay behind at the canvas and are not written into the AVIF item. |
| Viewer support | Chrome 85, Firefox 93, Safari 16.4, macOS Ventura Preview, and Windows 11 with the AV1 extension installed. |
What happens to your file
The AV1 encoder used here is part of your browser, not a service: the JPEG is decoded locally, drawn onto a canvas, and re-encoded by a canvas.toBlob call that blocks on your own processor for as long as the compression takes. Nothing is uploaded, nothing is queued behind other users, and there is no file-size policy beyond what your machine can hold in memory. It also means the location data in a phone photo never travels - and is not copied into the AVIF either.
About this tool
- 1
Use Chrome or Edge for this page
A Chromium browser is what makes real AVIF output possible; in Firefox or Safari the file will contain PNG data under an .avif name.
- 2
Add JPG or HEIC photos
Up to twenty per run. iPhone HEIC files are decoded to JPEG data in the tab and then encoded as AVIF.
- 3
Choose the quality
Start at 90 and step down if the target is a web page. Compare at full zoom before committing to a large batch.
- 4
Convert, then verify the saving
The percentage reduction appears with the result. If it is small, the source JPEG was probably already heavily compressed.
| Input and output | Takes .jpg and .jpeg only (image/jpeg) and returns .avif with the image/avif type; any other extension is refused before decoding. |
|---|---|
| Conversion path | JPG to AVIF runs in three steps: an <img> element decodes the JPEG, baseline or progressive, in the browser; the pixels land on a 2D canvas in this tab; then canvas.toBlob with the image/avif type returns the finished file. |
| Browser support | The JPEG side decodes in every browser ever shipped, while writing the AVIF needs a Chromium browser, since Firefox and Safari return PNG bytes under the .avif name. |
| Controls for this pair | A 30 to 100 quality slider (steps of five, default 90) drives the AVIF encode, max-dimension presets from 3840 down to 200 px resize the JPG first, and the strip-metadata toggle is moot on this pair. |
| Batch, caps and naming | Twenty JPG files per run at 500 MB each; one result downloads as a single AVIF, several as converted-avif-files.zip, zipped by JSZip 3.10 in page memory. |
| Device ceiling | The canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized JPG fails before any AVIF bytes exist. |
- Downscale before encoding rather than after - AV1 spends its time per pixel, so a smaller image is both faster and lighter.
- Keep the JPEG originals. AVIF is excellent for delivery but a second lossy generation is not a master copy.
- A picture element with an AVIF source and a JPG fallback covers every visitor, including the ones on older systems.
- If the output is oddly large and opens in software with no AVIF support, check which browser you are using - that is the PNG fallback showing.
- Converting a site's photographic assets to cut bandwidth without visibly changing the images.
- Compressing an archive of camera JPEGs for storage where space matters more than universal compatibility.
- Testing how much smaller a page's hero image could be before committing to a build-pipeline change.
Related tools
View allNeed the opposite? Try AVIF to JPG
Works well with this4
Other AVIF tools12
Updated