handbrake-web

TheNickOfTimeAGPL-3.0更新放缓

在无头设备上通过网页界面运行 HandBrake 转码,还能把多台机器的算力汇入同一个任务队列,适合自建视频转码集群。

A self-hosted platform to use HandBrake on your headless devices via a bespoke web interface. Harness the processing power of multiple devices to work on a single queue.

v0.8.1发布于 2025-12-10 20:08 UTC806star21fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
docker compose up -d
硬件要求按 README 说明

server 端计算量小,可跑在低功耗设备上;worker 端计算密集,建议每台机器只跑一个 worker,且需高核心数 CPU 或可用的 GPU 硬件编码。README 未给出具体显存要求。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管的 HandBrake 网页前端,把多台无头设备的算力汇入同一个转码队列

在无头设备上通过网页界面运行 HandBrake 转码,还能把多台机器的算力汇入同一个任务队列,适合自建视频转码集群。

核心能力

  • 用浏览器在无头设备上操作 HandBrakeCLI 转码
  • server 只做调度,worker 用 HandBrakeCLI 执行重活
  • 多 worker 分布式并发处理同一任务队列
  • 目录 Watcher 按条件自动创建转码任务
  • 支持 Intel QSV 与 NVIDIA NVENC 硬件编码

容易踩的坑

预设需先在 HandBrake 桌面版导出为 .json 再通过网页上传;启用 GPU 硬件编码需额外配置,且目前仅支持 Intel QSV 和 NVIDIA NVENC;server 与 worker 挂载的媒体路径必须保持一致,默认端口为 9999。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.8.1
  1. v0.8.1最新正式版2025-12-10 · 2025-12-10 20:08 UTC

    Featured Changes

    Fixes

    • Fixed an issue preventing workers on ARM from starting properly.

    All Changes

    Full Changelog: https://github.com/TheNickOfTime/handbrake-web/compare/v0.8.0...v0.8.1

    Support HandBrake Web

    HandBrake Web is developed and made available completely for free. If you enjoy using the project, consider supporting the project with a donation

  2. v0.8.02025-12-09 · 2025-12-09 01:41 UTC
    查看更新说明

    Long time, no see! After a year (nearly to the date), HandBrake Web v0.8.0 is here!

    I'm sorry for how long this took - maintaining a project like this in my limited free time is no easy task, and the past year has been difficult for me in a variety of ways. With apologies out of the way, I am happy to say that this update has a large number of improvements. The primary focus of this update was under-the-hood optimization and bug fixing, so things will not feel "new", but I promise you that this update for the project is the most substantial one so far.

    Featured Changes

    Overhauled Build Process

    The build process for HandBrake Web has been revamped pretty much top to bottom. This comes with a variety of benefits/improvements:

    Custom Built HandBrake v1.10.2

    Previously, the image build process would simply install HandBrake from Debian's package repository. This was bad for a variety of reasons - HandBrake themselves don't recommend doing this, and even at the time of the last release, the packaged HandBrake v1.6.2 was horrifically out of date.

    As of v0.8.0, this project automatically (using Renovate) builds HandBrake from source whenever there is a new release from the HandBrake team. This means that we are shipping with the latest version of HandBrake (v1.10.2 at the time of publishing), and staying on top of future versions will be much easier and faster.

    Additionally, the custom build of HandBrake has fewer external dependencies, which has had a great impact on final image size.

    Distroless Base Image

    The final images for this project now use Google's distroless base images. As a result, our final images only include what is absolutely necessary to run the project. This has a variety of implications, but is mostly impactful to final image size.

    Application Bundling

    The server and worker applications are now bundled with esbuild (the client already was previously). Through the magic of dependency tree-shaking, only the code and dependencies that are actually needed are included in the final build. This has a drastic impact on final image size.

    Final Image Size Reduction

    As a result of these build changes, the server and worker images have gone from 1.04 GB and 1.29 GB to 222 MB and 394 MB respectively.

    Client Updates

    Massive Refactoring

    This is the biggest change that you will never notice. Nearly every aspect of the client has been rewritten or refactored, now more closely following best practices (who was the idiot who wrote all this over a year ago?). There is still more work to do here, but for now it means maintaining the client code is immeasurably easier, which means fixing bugs and implementing features should be faster.

    Updated Job Creation Dialog

    The job creation dialog has been refined both visually and functionally:

    • The styling of the dialog has been updated to be more in line with the rest of the application - previously was looking pretty plain/vanilla HTML.
    • The order of sections has been revised - you now select the preset you intend to use before anything else.
    • File extension selection has been removed and uses the extension provided by the selected preset (how it should have always been)
    • ISO images can now be selected as the input file in the File Browser (previously wasn't possible).
    Updated Worker Display

    The display for worker information has been updated to include a ton more useful and relevant information such as:

    • Application Version
    • HandBrake Version
    • Supported Hardware Capabili
  3. v0.7.32024-11-27 · 2024-11-27 01:55 UTC
    查看更新说明

    Featured Changes

    Fixes

    • Fixed an issue where watchers would use the extension '.mkv' for their output files regardless of what the preset requests.

    All Changes

    Full Changelog: https://github.com/TheNickOfTime/handbrake-web/compare/v0.7.2...v0.7.3

  4. v0.7.22024-11-15 · 2024-11-15 22:59 UTC
    查看更新说明

    Featured Changes

    Fixes

    • Fixed an issue where changing your output extension after selecting your input file would not update the output extension

    All Changes

    Full Changelog: https://github.com/TheNickOfTime/handbrake-web/compare/v0.7.1...v0.7.2

  5. v0.7.12024-09-10 · 2024-09-10 18:19 UTC
    查看更新说明

    Featured Changes

    arm64 Platform Support

    • You can now run HandBrake Web on your arm powered devices natively!
    • Limitations on the arm64 platform:
      • No GPU transcoding available

    All Changes

    Full Changelog: https://github.com/TheNickOfTime/handbrake-web/compare/v0.7.0...v0.7.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Summary

    HandBrake Web is a program for interfacing with handbrake across multiple machines via a web browser. It consists of two components: the server and one or more worker(s). Warning - This application is still under heavy development, use at your own risk, to learn more please see the Known Issues & Limitations section.

    Server

    The server component primarily acts as a coordinator for the workers. Additionally it serves the client interface. The work done by the server is not computationally expensive - it can be run on low-end/low-power devices with no issue.

    Worker(s)

    The worker component does the heavy lifting via HandBrakeCLI. Jobs are sent to workers by the server, and the workers will process the provided media based on a provided HandBrake preset configuration. The work done by the worker is very computationally expensive - it is recommended that you run a single worker instance per machine, and that machine either have a high core-count CPU or have GPU hardware encoding features available to the worker.

    Setup

    Setup Guide

    See the Setup Guide wiki page for a detailed walkthrough on getting HandBrake Web setup and configured.

    Quick Start

    If you are very familiar with Docker/Docker Compose and want to get started as fast as possible with a server and a single worker, check out the base configuration below:

    services:
      handbrake-server:
        image: ghcr.io/thenickoftime/handbrake-web-server:latest
        container_name: handbrake-web-server
        user: 1000:1000 # edit to run as user (uuid:guid) with permissions to access your media. 0:0 to run as root (not recommended).
        ports:
          - 9999:9999
        volumes:
          - /path/to/your/data:/data
          - /path/to/your/media:/video # ensure this path is the same across all containers
    
      handbrake-worker:
        image: ghcr.io/thenickoftime/handbrake-web-worker:latest
        container_name: handbrake-web-worker
        user: 1000:1000 # edit to run as user (uuid:guid) with permissions to access your media. 0:0 to run as root (not recommended).
        environment:
          - WORKER_ID=handbrake-worker # give your worker a unique name
          - SERVER_URL=handbrake-server # change if setting up a standalone worker, prefix with http(s):// if necessary
          - SERVER_PORT=9999 # change if using a reverse proxy or the port is otherwise different than above
        volumes:
          - /path/to/your/media:/video # ensure this path is the same across all containers
        depends_on:
          - handbrake-server
    

    Usage

    Presets

    HandBrake Web currently uses presets configured in the desktop application of HandBrake and exported to .json files to configure encoding jobs. Exported presets can then be uploaded via the web interface in the 'Presets' section. Please see the Presets wiki page for additional information.

    Hardware Accelerated Encoding

    Additional configuration is required to enable hardware accelerated encoding for GPUs - please see the Hardware Acceleration wiki page for additional information. Currently Intel QSV and NVIDIA NVENC hardware encoding are supported. Support for AMD VCN is planned, but not yet implimented.

    Features

    These lists are not comprehensive, please see the development project for more information...

    Current Features

    • Web Interface - Interact with HandBrake on a headless device via a web browser.
    • Job Queue - Create and manage a queue of jobs for your workers to tackle in order.
    • Bulk Job Creation - Easily create multiple jobs at once for videos in the same directory.
    • Preset Management - Upload, Rename, and Delete HandBrake presets in the web interface.
    • Directory Monitoring - Create directory "Watchers" to automatically create jobs based on various criteria.
    • Distributed Encoding - Leverage multiple devices/nodes/workers to tackle encoding tasks concurrently.
    • Hardware Accelerated Encoding - Use a GPU to speed up encoding times.
      • Intel QSV - Use your discrete and/or integrated Intel GPU.
      • NVIDIA NVENC - Use your discrete NVIDIA GPU.

    Planned Features (not yet implemented)

    • Preset Creator - Create presets directly in the web interface.
    • Upload Files - Upload video files to the server via the web interface.
    • Hardware Accelerated Encoding - Use a GPU to speed up encoding times.
      • AMD VCN - Use your discrete and/or integrated AMD GPU.
    • User Sessions - Logging in required to access the web interface.

    Bonus Tool (Minimal HandBrakeCLI Image)

    If you are looking for a dockerized/containerized way to directly use HandBrakeCLI (via terminal), you can use an additional image this project provides -ghcr.io/thenickoftime/handbrake-cli. You can find additional information about using it on the HandBrakeCLI Image wiki page.

    This "bonus" image was incredibly simple to make by using the existing outputs of this project's build process, so it felt rude to not make it available to anyone who might want to use it.

    Contributing & Development

    Please see CONTIBUTING.md.