github I-IAL9000/shrinkerr v0.5.10

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

Fixed

  • NVENC + NVDEC jobs still failed on v0.5.9 with a slightly different error than v0.5.7's: Impossible to convert between the formats supported by the filter 'Parsed_scale_cuda_0' and the filter 'auto_scale_0'. The v0.5.8 fix added the right scale_cuda=format=p010le filter, but the NVENC encoder block kept emitting -pix_fmt p010le on the output side. -pix_fmt declares the encoder's input format in CPU memory; with HW decode keeping frames on the GPU after scale_cuda, the encoder sees a CUDA surface AND a contradictory directive saying it should expect CPU memory. ffmpeg tries to insert auto_scale_0 to bridge cuda(p010le)p010le (CPU), which it can't do without an explicit hwdownload step, and the encoder bombs before processing a single packet. Fix: emit -pix_fmt only on the software-decode path; with HW decode the scale_cuda=format=X filter already dictates the surface format. QSV/VAAPI paths never had -pix_fmt set, so they were unaffected and continue to work. This was a real testing-discipline failure on my part — I shipped HW pipeline changes twice (v0.5.7, v0.5.8) without actually running ffmpeg with CUDA; the canonical pattern I copied was incomplete. Going forward, HW decode changes should be verified against a real NVIDIA test box before tagging.

Docker images

Pinned to this release:

docker pull ghcr.io/i-ial9000/shrinkerr:0.5.10         # portable (amd64 + arm64, CPU)
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.10-nvenc   # x86_64 + NVIDIA GPU (NVENC)
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.10-edge    # as above but ffmpeg master
docker pull ghcr.io/i-ial9000/shrinkerr:0.5.10-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.