github derekshreds/Snacks v2.0.1
Snacks v2.0.1

latest release: v2.0.2
7 hours ago

Snacks v2.0.1

Automated Video Library Encoder

Patch release focused on 4K encoding reliability, queue usability, and Docker deployment fixes.


What's New

Encoding Engine

  • 4K VAAPI calibration overhaul -- starting QP raised from 24 to 30 for 4K content, test duration doubled to 60 seconds, sample point moved to 40% into the file (avoids intros), and max calibration iterations increased from 3 to 6 so quality convergence actually reaches the target bitrate
  • Stall detection timeout increased to 5 minutes -- the previous 30-second timeout was killing FFmpeg during the final muxing phase (moov atom relocation for MP4, MKV finalization) on large 4K files and slow NAS drives, causing failures at 99% progress
  • Bitrate tolerance loosened to 20% -- VAAPI CQP calibration now accepts output within 20% of target (was 15%), reducing unnecessary re-calibration passes

Web Interface

  • Queue filter tabs -- filter the queue by All, Pending, Completed, or Failed with count badges on each tab
  • First/last page navigation -- pagination now includes double-chevron buttons to jump directly to the first or last page
  • Fixed "Now Processing" flickering -- the processing indicator no longer disappears and reappears when viewing non-first pages of the queue
  • Fixed first page showing fewer items -- processing items are now excluded from pagination so every page shows the full 5 items
  • Removed refresh button -- the queue auto-refreshes via SignalR so the manual refresh button was unnecessary

Docker & Deployment

  • Fixed Docker Desktop startup failure -- GPU passthrough settings (/dev/dri, video/render groups) moved to a separate docker-compose.gpu.yml overlay so the base compose works on Windows and Mac without errors
  • Fixed port mismatch -- base docker-compose.yml and Dockerfile now consistently use port 6767 (was incorrectly set to 8080 in some places)
  • Dual Docker Hub push -- build-and-export.bat now pushes to both derekshreds/snacks-docker:latest and derekshreds/snacksweb:latest so users on the old image name receive updates
  • Backend status filtering -- GetWorkItems endpoint accepts an optional ?status= parameter for server-side filtering

Deployment

NAS (Docker)

docker pull derekshreds/snacks-docker:latest

On Linux hosts with GPU acceleration, use the GPU overlay:

docker-compose -f docker-compose.yml -f docker-compose.gpu.yml up -d

Windows (Docker Desktop)

start-snacksweb.bat

Uses the base compose only -- no GPU passthrough needed.

Windows Desktop

Download the installer from the Releases page, or build from source:

build-installer.bat

Files Changed

  • TranscodingService.cs -- calibration and stall detection improvements
  • HomeController.cs -- processing items separated from pagination, status filter parameter
  • transcoding.js -- filter tabs, pagination, processing section fix
  • Index.cshtml -- filter tabs replacing refresh button
  • site.css -- filter tab styling
  • docker-compose.yml -- removed GPU settings, fixed port to 6767
  • docker-compose.gpu.yml -- new GPU overlay for Linux hosts
  • Dockerfile -- fixed EXPOSE to 6767
  • build-and-export.bat -- dual image push
  • start-snacksweb.bat -- removed GPU overlay, fixed port references
  • start-snacksweb.sh -- uses GPU overlay

Full documentation: README.md

Don't miss a new Snacks release

NewReleases is sending notifications on new releases.