A self-hosted platform to manage video transcoding on headless devices via a web-based interface and job queue.

HandBrake Web is a self-hosted application that provides a web-based interface for managing video transcoding on headless devices. It utilizes the HandBrakeCLI component to process media files based on specific preset configurations. The software is deployed using a client server architecture, typically via Docker containers, allowing users to control video processing from any web browser.
The system consists of a central server that coordinates tasks and one or more workers that perform the actual transcoding. While the server requires minimal computational resources and can run on low-power hardware, workers are resource-intensive. It is recommended to run a single worker instance per machine, utilizing hardware with high core-count CPUs or dedicated GPU hardware encoding capabilities to maintain efficiency.
The application is built with Node.js, React, and TypeScript. It is designed for users who need to manage large volumes of video processing across a network of machines without needing a monitor attached to the processing hardware. To configure encoding parameters, users export .json presets from the HandBrake desktop application and upload them through the web interface. The server and workers must share access to the media directories, ensuring that the file paths remain consistent across all containers in the deployment.
In addition to the main platform, the project provides a minimal Docker image for those who wish to use HandBrakeCLI directly via the terminal. This allows for flexible deployment depending on whether the user requires a full management interface or a simple containerized CLI tool.
HandBrake Web serves as a distributed management layer for the HandBrake command line interface.
Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.