HandBrake for Unraid: the full video transcoder in your browser, with an automated watch folder.
10K+
A modern, plug-and-play Docker image for HandBrake on Unraid. The full
transcoder GUI in your browser via Selkies, dark by default using
HandBrake's own native GTK dark mode, plus a watch-folder converter that
transcodes anything you drop into /watch without opening the UI at
all. Everything is configurable from the Unraid template, no SSH or config-file
editing required.
A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.
If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.
The videos in these pictures are the trailers of Blender's open movies Sintel and Big Buck Bunny (CC BY 3.0, Blender Foundation), loaded in a test container.
HandBrake's own GTK dark mode, with a source loaded and the Fast 1080p30 preset picked
The queue works through one encode after another while you do something else
/watch and the transcode lands in /output without opening the GUI. Output is written to a hidden file first and renamed when it is done, so a media scanner never picks up a half-written video. The watch folderAnother HandBrake container is also in Community Applications:
linuxserver/handbrake,
the official LinuxServer.io image. It builds on the very same
Docker Baseimage Selkies
project this image does, just the Arch Linux flavour of it instead of the
Ubuntu one, and opts into that base's newer Wayland/PixelFlux screen-streaming
pipeline (PIXELFLUX_WAYLAND=true) rather than the classic X11 one this image
still uses by default. A strong, actively developed GUI, but no automated
conversion of any kind, so it does not compete on the feature this image is
built around.
| This image | jlesage/handbrake | linuxserver/handbrake | |
|---|---|---|---|
| Web stack | Selkies (X11) | noVNC | Selkies (Wayland) |
| Base | Ubuntu (glibc) | Alpine (musl) | Arch Linux |
| NVIDIA NVENC encoding | ✅ | ❌ (#49) | n/a |
| Intel Quick Sync (QSV) encoding | ✅ | ⚠️ (#459) | n/a |
| AMD VCE encoding | ⚠️ unverified | ❌ (#441) | n/a |
| Dark mode default | ✅ | opt-in (DARK_MODE=1) | ❓ |
| Watch-folder conversion | ✅ | ✅ | ❌ |
| Browser clipboard | ✅ | ⚠️ | ✅ |
| File upload via WebUI | ✅ | ❌ | ✅ |
| Web file manager | ✅ | opt-in (WEB_FILE_MANAGER=1) | ❌ |
| Conversion hooks | ✅ | ✅ | ❌ |
| Staging on a separate disk | ✅ | ❌ | n/a |
| Shared-watch-folder locking | ✅ | ✅ | n/a |
| CJK fonts | ✅ | opt-in (ENABLE_CJK_FONT=1) | ❓ |
| Multi-arch | ✅ | ✅ | ❌ amd64 only |
| Direct VNC client | ❌ | ✅ | ❌ |
✅ works · ❌ doesn't · ⚠️ present but limited · ❓ undocumented · n/a no automated conversion to accelerate/configure
On Unraid, install HandBrake from Community Applications and set the paths for your media, the watch folder and the output folder. Everything else has a working default.
Without Unraid:
docker run -d --name handbrake \
-p 3001:3001 \
-e PUID=99 -e PGID=100 \
-v /path/to/appdata/handbrake:/config \
-v /path/to/media:/storage:ro \
-v /path/to/watch:/watch \
-v /path/to/converted:/output \
junkerderprovinz/handbrake:latest
Then open https://<server-ip>:3001/ and accept the self-signed certificate once. On the very first start, wait for HANDBRAKE IS READY in the container log.
Every variable, the watch-folder settings, hardware encoding, hooks, optical drives, moving over from jlesage/handbrake and the known problems are in docs/configuration.md.
One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.
You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.
Questions, bugs, ideas or feature requests? Please open a GitHub issue.
A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.
If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.
This wrapper is AGPL-3.0-only. HandBrake itself is GPL-2.0 and its artwork is CC BY-SA 4.0. Every bundled component and its licence is listed in NOTICE.
Content type
Image
Digest
sha256:fac827dd8…
Size
1015.4 MB
Last updated
2 days ago
docker pull junkerderprovinz/handbrake