TapeDeck
Golang master-slave distributed encoding system with a Web UI and API for personal or backend service use
TapeDeck is a distributed encoding system written in Go, developed as part of the Mixtape project. A master server holds a queue of projects (a film, a series, an album, an image gallery) and hands encoding tasks to worker nodes, which register themselves and advertise what they can do. You manage everything through a web UI or a REST API. It is meant for people who encode whole libraries on several machines and want a queue and dashboard rather than shell scripts.
It is new: v0.1.0 (October 2026) is the first stable release. It is MIT-licensed; source and issues are on GitGud.
What it handles
Section titled “What it handles”| Area | Tools used |
|---|---|
| Video | SVT-AV1 (stock or the SVT-AV1-HDR fork), x265, x264, and VP9 (through Av1an for chunked encoding) |
| Audio | Opus (FFmpeg piped to opusenc), FLAC, AAC |
| Images | AVIF (avifenc), WebP (cwebp or FFmpeg) |
| Muxing | mkvmerge, with FFmpeg as fallback; MKV, MP4 and WebM output |
| HDR | Detects HDR10, HDR10+ and Dolby Vision profiles 5, 7, 8 and 10; Dolby Vision can be stripped (default), kept, or converted to profile 8 using dovi_tool and hdr10plus_tool |
| Metrics | SSIMULACRA2, Butteraugli and CVVDP through Vship on workers with a GPU |
Keeping Dolby Vision or HDR10+ metadata in AV1 needs the SVT-AV1-HDR fork on the worker; with stock SVT-AV1 those modes fail with an error instead of silently dropping the metadata.
Run it
Section titled “Run it”The README’s quick start runs a master and one worker with Docker Compose on a single host, using the published tapedeck-master and tapedeck-slave images and a set of generated API and enrollment keys; the web UI is then on port 7700. Workers on other machines use the remote-worker Compose file, each with its own credentials and TLS certificate, and need the source media mounted. An install script sets up a bare-metal worker on Arch Linux or CachyOS. For production, the repository includes a PostgreSQL-backed Compose stack with TLS between master and workers.
Follow the README for the exact environment variables and Compose files, which change between versions.