handbrake web 视频分布式集群转码

创建目录

sudo mkdir -p /data/handbrake/data   

sudo mkdir -p /data/handbrake/media  #媒资文件目录

sudo chmod -R 777 /data/handbrake/media  #授权 ,若多work节点 需使用nfs共享文件路径保证路径一直

创建compose.yml

services:
  handbrake-server:
    image: ghcr.io/thenickoftime/handbrake-web-server:latest
    container_name: handbrake-web-server
    user: 1000:1000  # 修改为你系统的 UID:GID
    ports:
      - "9999:9999"  # Web 界面端口
    volumes:
      - /data/handbrake/data:/data
      - /data/handbrake/media:/video  # 媒体文件路径

  handbrake-worker:
    image: ghcr.io/thenickoftime/handbrake-web-worker:latest
    container_name: handbrake-web-worker
    user: 1000:1000  # 修改为你系统的 UID:GID
    environment:
      - WORKER_ID=worker-1  # 唯一标识
      - SERVER_URL=10.10.0.64  # 服务器地址
      - SERVER_PORT=9999  # 服务器端口
    volumes:
      - /data/handbrake/media:/video  # 必须和服务器路径一致
    depends_on:
      - handbrake-server

 修改启动后生成的config 文件  max-concurrent-jobs: 1 表示单个word 每次只执行一个任务  防止串行触发bug 

cat config.yaml 
config:
  version: 2
paths:
  media-path: /video
  input-path: /video/input
  output-path: /video/output
presets:
  show-default-presets: true
  allow-preset-creator: false
application:
  queue-startup-behavior: 1
  update-check-interval: 1
  max-concurrent-jobs: 1

配置自监控路径规则 正则匹配   .*\.(mp4|mkv|avi|mov|wmv|m4v|mpg|mpeg|ts)$

image

 

下载使用一下面代码可以实现优化
1、nfs 共享路径任意节点上传能触发watcher 转码 
2、成功转码输出视频保留源路径
3、优化多节点抢转码bug
4、优化节点有残留的Finished 导致空闲中未被调用

https://files.cnblogs.com/files/blogs/776379/server.js?t=1785994223&download=true

sudo docker cp server.js handbrake-web-server:/handbrake-web/server/server.js

dockert compose restart handbrake-server

需要永久保存可生成新镜像
docker commit handbrake-web-server handbrake-web-server-new

 

posted @ 2026-07-20 14:50  追梦$少年  阅读(11)  评论(0)    收藏  举报