github I-IAL9000/shrinkerr v0.3.4

latest releases: v0.9.107, v0.9.106, v0.9.105...
3 months ago

Quality-of-life follow-up to 0.3.3. Now that VMAF is producing correct
scores, there's no need for the conservative whole-file compare — this
release reverts to the fast 30-second sample and fixes the progress-
bar hang that was pinning the UI at 100% for several minutes during
analysis.

Changed

  • VMAF analysis is ~50× faster on TV episodes. Reverted the 0.3.3 whole-file compare (which was belt-and-suspenders insurance while we hunted the real cause of the wrong scores) back to a 30-second sample at 33% into the file, applied identically to both inputs via input-level -ss (accurate seek, no filter-level trim). The fps + colour-range normalisation from 0.3.3 is what actually fixed the scores, and it works just as well on a 30-second window as on the whole file. A 25-minute Croods episode now finishes VMAF in ~6 seconds instead of ~6 minutes.

Fixed

  • VMAF progress bar no longer hangs at 100%. Two bugs combined to freeze the progress indicator for the entire VMAF run:
    1. The code was seeding progress=100 at the start of the VMAF phase as a "we're analysing" signal, then trying to reduce it as frames came in — except
    2. -loglevel error was suppressing ffmpeg's frame=N fps=X … progress output, so the frame-count parser never ran and progress stayed stuck at the seed value.
      Now seeds progress=0, adds -stats to force per-second progress output regardless of loglevel, and computes percentage against the real source fps from the probe (previously hardcoded to 24fps, which under-counted frames on 29.97/30fps content). The cross-check pass (when VMAF < 80) now also has its own progress phase labelled "Quality cross-check" instead of continuing to show a stale "VMAF analysis" at 99%.
  • ETA during VMAF. The analysis fps and elapsed time are now shown via the progress callback, so the UI can surface something like "VMAF analysis — 90fps — 12s remaining" instead of a bare percentage.

Docker images

Pinned to this release:

docker pull ghcr.io/i-ial9000/shrinkerr:0.3.4         # portable (amd64 + arm64, CPU)
docker pull ghcr.io/i-ial9000/shrinkerr:0.3.4-nvenc   # x86_64 + NVIDIA GPU (NVENC)
docker pull ghcr.io/i-ial9000/shrinkerr:0.3.4-edge    # as above but ffmpeg master
docker pull ghcr.io/i-ial9000/shrinkerr:0.3.4-edge-nvenc

Floating tags (:latest, :edge, :nvenc, :edge-nvenc) track the most recent release of each lineage.

Don't miss a new shrinkerr release

NewReleases is sending notifications on new releases.