Writing · 2026-05-04

Best AVIF encoder for Mac, no Python required

XL Converter is Windows and Linux only. Squoosh runs in a browser. Here is a native Mac path to AVIF that ships in the Mac App Store.

AVIF compression on Mac has been awkward. The best free GUI for batch AVIF work, XL Converter, ships only for Windows and Linux. The most popular cross-platform GUI, Squoosh, lives inside a web browser and processes one image at a time. ImageOptim, the Mac standard, never added AVIF support.

This post walks through the options for actually encoding AVIF on a Mac in 2026, and the native path Sqz ships.

What “best” actually means

There are three different questions hiding inside “best AVIF encoder.”

The first is encoder quality. AVIF compression depends on the AV1 encoder underneath, and there are several of them. libaom is the reference encoder, slow but with the best file size at every quality level. rav1e is a Rust implementation, faster than libaom but with slightly larger files. SVT-AV1 is the production encoder Netflix uses, designed for speed at scale.

The second is encoder ergonomics. A command-line tool that requires you to remember a dozen flags is technically capable of producing the best AVIF on the planet, but if you only encode one folder a month you will get the syntax wrong every time.

The third is encoder fit. A web app with no batch mode is fine for a single hero image. A batch tool with no quality slider is fine for an automated pipeline but useless when you need to tune one file. The right tool depends on the work.

The three paths on Mac

Command line: avifenc

The reference path. brew install libavif gives you avifenc and avifdec, command-line wrappers around libaom by default. Quality is set with a --qmin/--qmax range or with --min/--max quantizer values. Speed is set with --speed, from 0 (slowest, best compression) to 10 (fastest, larger files).

For a typical photograph:

avifenc --min 20 --max 30 --speed 6 input.jpg output.avif

That gives you a quality roughly equivalent to JPEG quality 80, encoded in a few seconds. Drop the speed to 4 and the file will be smaller but the encode will take noticeably longer.

This path is the smallest, fastest, and most flexible. It is also the path with the worst ergonomics. There is no GUI, no batch progress indicator, no drag-and-drop, no quality preview. If you process AVIF files once and forget about it for a month, you will spend longer remembering the flags than running the encode.

Browser: Squoosh

Squoosh is a free web app from the Chrome team that does one image at a time with a side-by-side preview. The AVIF encoder runs in WebAssembly, so the quality is identical to what you would get from libavif natively.

Squoosh is the right tool for a single hero image where you want to see the quality slider’s effect in real time. It is the wrong tool for a folder of fifty photos. There is no batch mode. There is no “apply same settings to all.” You drag one file in, tune it, save it, drag the next file in.

Native Mac apps

This is where things split into a small list. Most Mac image apps were built for JPEG and PNG and bolted on modern formats later, with mixed results.

Squash 3 from Realmac. Mac App Store, supports AVIF, WebP, HEIC. Subscription pricing in recent versions. Good batch mode. AVIF quality settings are exposed at a reasonable level.

Compresso from BeforeApple. Direct download and Setapp. Supports AVIF and a wide range of other media formats. One-time license. No App Store presence.

Sqz is the app I work on. Mac App Store, one-time price, native AVIF encoder via libavif under the hood. The reason it exists is that no other App Store app combines AVIF, WebP, HEIC, JPEG XL, and jpegli into a single sandboxed batch tool at a one-time price.

How Sqz handles AVIF

Sqz uses libavif via the open-source avif.swift bindings, with libaom as the underlying AV1 encoder. That means the file sizes you get are identical to what avifenc would produce at the same quality and speed settings. The difference is the interface: drag a folder in, pick a quality, watch a progress bar, get a folder of AVIFs out.

Quality is exposed as a 0 to 100 slider that maps to libavif’s internal quantizer range. A quality of 80 is the rough equivalent of JPEG quality 80 and is the default for web work. Speed is exposed as a separate slider for users who want to tune file size against encode time.

The app also handles the boring parts. Color profile preservation, EXIF transfer, alpha channel handling, parallel processing across cores. For a hundred-image batch on an M-series Mac, the difference between Sqz and avifenc is mostly the wall time the user spends doing other things while the encoder runs.

A decision tree

  • One image, want a real-time quality preview? Squoosh.
  • Many images, comfortable on the command line, want the absolute smallest? avifenc with libaom and a slow speed setting.
  • Many images, want a Mac-native UI with App Store sandboxing? Sqz, Squash, or Compresso, in that rough order of fit if AVIF is your primary format and you want a one-time price.

There is no single best encoder. There is the encoder that matches the work. On Mac in 2026, the choices are finally good enough that the format itself is no longer the bottleneck.

← All writing
#avif #macos #tools