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
SnacksWebtoSnacks - The default port is now
6767(was8080) - Docker compose port mapping is now
6767:6767 - The backend DLL is now
Snacks.dll(wasSnacksWeb.dll)
Deployment
NAS (Docker)
docker pull derekshreds/snacksweb:latestSee 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.batRequires 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