Five stages, one job ID. Submit a file, the master chunks it on scene boundaries, the fleet encodes in parallel, and every chunk is verified before it ships.
Deterministic output. The same source and preset produce a byte-identical result whether one worker ran it or forty.
Point the web console, the API, or a watch folder at a source. The master probes it, validates it against the preset's source rules, and returns a job before the first chunk is cut.
$ curl -X POST https://master.studio.local:7443/jobs \
-d '{"source_uri": "/vol/clip.mov",
"preset_id": "youtube-4k-h264"}'
→ 201 created · 235 chunks plannedA scene-detect pass finds real cut points, then chunks are merged toward a target duration. Boundaries land where the encoder was going to insert a keyframe anyway — so no seams, no re-encode penalty.
The scheduler matches each chunk to a worker that can actually encode it — right codec, right accelerator, right FFmpeg build. Slow workers get fewer chunks. Dead workers get their work reassigned.
Each worker runs a plain FFmpeg invocation you can read, copy, and debug. Progress streams back frame by frame — fps, bitrate, speed — so a job's state is never a guess.
frame= 14260 fps=184 q=23.0
bitrate=14723kbits/s speed=2.41xEvery chunk is decoded and checksummed before concat. If a chunk drifts, it's re-encoded — not shipped. The finished master lands in your output directory with a manifest of exactly how it was made.
Install the master, join a worker, submit a job. Self-hosted and free to run on hardware you already own.