Skip to content

v0.3.41

Choose a tag to compare

@github-actions github-actions released this 25 Apr 14:00

Fixed

  • Reverted v0.3.40's fire-and-forget DB writes. The fire-and-forget pattern was meant to prevent ffmpeg's stderr-read loop from blocking on contended WAL writes, but it had a worse side effect: removing the natural back-pressure between Shrinkerr and ffmpeg. With the await in place, the stderr loop briefly pauses on each DB write (every 3s per job), which keeps ffmpeg from running flat-out continuously. Without it, two concurrent NVENC ffmpeg processes both push the GPU encoder at full speed, and any external NVENC user (Plex Transcoder is the common one) exposes the GPU's scheduling unfairness — one Shrinkerr session stalls while the other runs fine, while fps and progress freeze for ~50 seconds at a time. Restored to v0.3.36's throttled-but-awaited write pattern. The actual fix for slow WAL writes is finding what holds the lock, not bypassing the await.

Docker images

Pinned to this release:

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

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