Changelog
Improved

compress.target runs 2 to 3x faster and picks better codecs

The quality search now interpolates instead of blind-stepping, reuses the winning probe, and scores VMAF on all cores, so compress jobs finish in a third of the time and cost a third as much.

API Dashboard

The compress.target search got a rebuild. It used to binary-search the quality knob blindly, re-encode the winning probe a second time, and score VMAF on a single thread. Now it interpolates through the scores it already measured, ships the exact file the reported score was measured on, and scores on every core. A typical 720p video job dropped from 28 to about 9 seconds on our benchmark corpus. Billing is per compute second, so the price drops with the clock.

Quality is unchanged

Output quality is unchanged or better. The search lands on the same encode it always found, and when a probe it already paid for is smaller and still clears your quality bar, it ships that one instead.

Codec selection

  • Images requesting compatibility: "modern" with codec: "auto" now race JPEG XL against AVIF and keep the smaller passing file. On our corpus JPEG XL wins detailed photos by 24 percent and AVIF wins gradients by 65 percent, so no single ladder choice could match it.
  • Fixed: codec: "jxl" failed on JPEG sources. cjxl treats a JPEG input as a lossless transcode and rejects quality flags, so every jxl encode of a .jpg errored. It now encodes lossy as intended.
  • The playground compress form now covers the whole schema: a target switch for quality, size cap in KB or MB, or bitrate, plus max resolution, a dry-run preview that estimates savings without producing a file, and the advanced knobs behind a fold.

What the job does and how targets are expressed is covered in compress to a target size or quality.

Share