GNU Affero General Public License v3.0

项目介绍

TheNickOfTime/handbrake-web 是一个托管在 GitHub 上的开源项目,主要使用 TypeScript 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 806 个 Star、21 次 Fork。

仓库全名
TheNickOfTime/handbrake-web
开源许可证
GNU Affero General Public License v3.0
Star 数
806
Fork 数
21
未关闭 Issue
35

README 摘要

HandBrake Web Disclaimer: This project is not related to or part of the official HandBrake development. It simply uses the CLI component of HandBrake under the hood. Summary See More Screenshots ( click to expand ) 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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

handbrake-web 用什么语言开发?

主要使用 TypeScript 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 806 个 Star。

handbrake-web 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 handbrake-web 的源码?

可以直接克隆仓库:git clone https://github.com/TheNickOfTime/handbrake-web.git,默认分支为 main;安装与运行步骤见仓库 README。

handbrake-web 最近还在维护吗?

仓库最近一次更新为 3月27日,当前有 35 个未关闭 Issue;Star 数为 806,可作为社区活跃度的参考。

关于

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.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
853
价值分
488
活跃状态
活跃

语言占比

Dockerfile
HTML
JavaScript
SCSS
TypeScript

Release

README

HandBrake Web

Disclaimer: This project is not related to or part of the official HandBrake development. It simply uses the CLI component of HandBrake under the hood.

Summary

See More Screenshots (click to expand)

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.

评论

暂无评论