JPG to AVIF, in your browser

Drop a JPG. Get an AVIF up to 50% smaller. The encoder runs in your tab and is SHA-256 pinned.

Options

Loading...

Files stay on your device. Nothing uploads.

Why convert JPG to AVIF?

AVIF compresses photos around 50% smaller than JPG at the same visible quality. For a website, that translates directly to faster page loads and lower CDN bills. For an archive, it means more photos per gigabyte.

This is the first FileForge converter that runs a real WASM module: the AVIF encoder from Squoosh, repackaged by the jSquash project. The runtime fetches that WASM, verifies its SHA-256 against the published manifest, and only then hands the bytes to the encoder. Open the "How do I know" widget after a conversion to see the exact hash that ran.

Picking a quality

AVIF quality ranges from 1 (smallest, ugly) to 100 (lossless, huge). The sensible photo range is 50-70; the default is 60 because AVIF holds detail well even at lower numbers. For graphics with flat colors, push quality up to 80-90 to avoid edge ringing.

Speed and memory

AVIF encoding is computationally heavy. A 12 MP photo takes 5-15 seconds on a modern laptop. Memory usage scales with image area; very large images may exhaust browser memory. The "memory budget" hint in this converter's manifest reflects that.

Frequently asked questions

Why is AVIF encoding so much slower than WebP?
AVIF compresses harder, which means more CPU work. The trade-off is smaller files. We use the single-threaded encoder for compatibility; multi-thread arrives in a later release.
How can I be sure the WASM is what you say it is?
Compare the SHA-256 in the "How do I know" widget against the value in /manifests/jpg-to-avif.json. They match because the runtime refuses to run any module that does not.
Does it preserve transparency?
JPG has no alpha to preserve, but if your input were PNG or WebP, transparent regions encode cleanly into AVIF.