github I-IAL9000/shrinkerr v0.5.8

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

Fixed

  • NVENC + NVDEC jobs failed immediately with ffmpeg exited with code 218 (regression introduced in v0.5.7). The full error in the ffmpeg log was Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scale_0', followed by [vost#0:0/hevc_nvenc] Could not open encoder before EOF. Root cause: NVDEC outputs 8-bit nv12 frames as CUDA surfaces (the common case — any 8-bit H.264 / HEVC source), but Shrinkerr's NVENC config forces -pix_fmt p010le -profile:v main10 for 10-bit output. With software decode, libavcodec emits CPU-side nv12 frames and ffmpeg's auto-format converter transparently upconverts to p010le. With NVDEC, frames live in CUDA surfaces and ffmpeg's auto-converter can't bridge GPU↔CPU pix_fmts, so the encoder bombs out before processing a single packet. Fix: always emit scale_cuda=format=p010le in the filter chain for NVENC+NVDEC (becomes scale_cuda=WxH:format=p010le when a target resolution is also set). The filter does the 8→10 bit conversion on-GPU and is a no-op when the source was already 10-bit. This affected every NVENC user who had nvenc_hw_decode=true (the v0.5.7 default), so any v0.5.7 upgrade where the user didn't manually disable the toggle was broken on first job. Apologies — Task 4 sanity tests checked cmd structure but didn't exercise real ffmpeg, so the pix_fmt mismatch wasn't caught pre-release.

Docker images

Pinned to this release:

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