github derekshreds/Snacks v2.0.0
Snacks v2.0.0

5 hours ago

Snacks v2.0.0

Automated Video Library Encoder

This is a complete rewrite of Snacks, rebuilt from the ground up as a web-based application with both NAS (Docker) and Windows desktop deployment options.


What's New

Desktop App (Windows)

  • Native Windows installer via Electron
  • Browse any drive or folder on your PC
  • Full GPU acceleration: NVIDIA NVENC, Intel QSV, AMD AMF
  • Precise VBR bitrate control on all desktop encoders
  • Bundled FFmpeg and .NET runtime -- no prerequisites to install
  • Desktop and Start Menu shortcuts

NAS Deployment (Docker)

  • Docker container for QNAP, Synology, and other NAS devices
  • Intel VAAPI hardware acceleration with auto-detection (iHD/i965 drivers)
  • Includes jellyfin-ffmpeg with full VAAPI/QSV support
  • Single compose file deployment

Encoding Engine

  • Smart filtering -- automatically skips files that already meet your quality targets
  • [snacks] file tagging -- encoded files are tagged with [snacks] in the filename instead of renaming originals. Originals are never moved or modified during encoding
  • Subtitle retry -- automatically retries without subtitles on failure (handles bitmap PGS/VOBSUB subs that crash encoders)
  • Software fallback -- falls back to libx265/libx264 if hardware encoding fails
  • Stall detection -- kills hung FFmpeg processes after 30 seconds of no output and moves to the next file
  • Bitrate-aware VAAPI -- CQP quality value is dynamically scaled based on target vs source bitrate ratio
  • Never upscales bitrate -- encoding target is always capped at the source file's bitrate
  • 4K support -- automatically uses 4x target bitrate for content above 1080p
  • File operation retries -- all file moves and deletes retry up to 10 times with backoff for NAS filesystem resilience

Web Interface

  • Dark mode UI with purple/gray color scheme
  • Real-time encoding progress via SignalR WebSockets
  • Dedicated "Now Processing" section that's always visible
  • Paginated queue sorted by bitrate (highest first)
  • Mobile-responsive layout with compact stats strip
  • Gear icon for encoder settings, separate from the file browser
  • Directory browser with back navigation, process current folder or recursive
  • Cancel active encoding (kills the FFmpeg process)
  • Log viewer with terminal-style output for each work item

Settings

  • Output format: MKV (default) or MP4
  • Video codec: H.265/HEVC or H.264/AVC
  • Hardware acceleration: Auto Detect, Intel, AMD, NVIDIA, or None
  • Target bitrate: 3500 kbps default
  • English-only audio and subtitle filtering
  • Black border auto-crop detection
  • Delete original file option (removes original and strips [snacks] tag)
  • Retry on failure toggle
  • Strict bitrate mode

Breaking Changes

  • The original Snacks WinForms desktop application has been removed
  • The project namespace has changed from SnacksWeb to Snacks
  • The default port is now 6767 (was 8080)
  • Docker compose port mapping is now 6767:6767
  • The backend DLL is now Snacks.dll (was SnacksWeb.dll)

Deployment

NAS (Docker)

docker pull derekshreds/snacksweb:latest

See deploy-compose.yml for the full compose configuration. Update the volume mount to point to your media library.

Windows Desktop

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

build-installer.bat

Requires FFmpeg binaries in electron-app/ffmpeg/ -- download the full release from gyan.dev.


Known Limitations

  • VAAPI CQP on Intel Elkhart Lake (J6412) does not support precise bitrate targeting. Quality is estimated from the target/source ratio but actual output varies by content.
  • Low-bitrate H.264 files (below target) are skipped on VAAPI since CQP cannot compress them further without inflating file size.
  • Queue state is in-memory and lost on container/app restart.
  • No concurrent encoding -- files are processed one at a time.

Full documentation: README.md

Don't miss a new Snacks release

NewReleases is sending notifications on new releases.