v0.3.4
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-leveltrim). 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:
- The code was seeding
progress=100at the start of the VMAF phase as a "we're analysing" signal, then trying to reduce it as frames came in — except -loglevel errorwas suppressing ffmpeg'sframe=N fps=X …progress output, so the frame-count parser never ran and progress stayed stuck at the seed value.
Now seedsprogress=0, adds-statsto 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%.
- The code was seeding
- 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-nvencFloating tags (:latest, :edge, :nvenc, :edge-nvenc) track the most recent release of each lineage.