github I-IAL9000/shrinkerr v0.3.40

latest releases: v0.9.98, v0.9.97, v0.9.96...
3 months ago

Fixed

  • The actual cause of stalled progress bars under DB lock contention. v0.3.36 throttled progress DB writes to once per 3 seconds per job (good — fewer writes). But each individual write was still awaited inside the converter's stderr-read loop, so when SQLite's WAL write lock was contended (busy_timeout=30000 lets a write wait up to 30s), the loop blocked on the slow write while ffmpeg's progress lines piled up unread in the pipe. When the DB finally returned, the queued progress lines flushed in a burst and the bar jumped 20%+. Live diagnostic data: encoder making smooth 200 fps progress while DB-recorded progress field stayed at 19.59% for 50 seconds, then jumped to 41.03%. Fix: fire-and-forget the DB write with asyncio.create_task so the stderr loop never blocks on persistence. Terminal flush (≥99.99%) is still awaited so the final value is durable. Same change applied to the audio-remux audio_progress_cb.

Docker images

Pinned to this release:

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