0


开源视频转码器HandBrake

在这里插入图片描述

什么是 HandBrake ?

HandBrake

是一款适用于

Linux

Mac

Windows

的开源视频转码器。

HandBrake

可以处理大多数常见的视频文件和格式,包括消费者和专业摄像机创建的文件、手机和平板电脑等移动设备的文件、游戏和计算机屏幕录制的文件,以及

DVD

和蓝光光盘的文件。

HandBrake

利用

FFmpeg

x264

x265

等工具从这些源文件创建新的

MP4

MKV

视频文件。

什么是 docker-handbrake ?

docker-handbrake

实现了一个用于

HandBrake

Docker

容器。应用程序的图形用户界面可以通过现代的

Web

浏览器访问(客户端无需安装或配置),也可以通过任何

VNC

客户端进行访问。还提供了完全自动化模式:将文件放入监视文件夹中,让

HandBrake

在没有任何用户交互的情况下处理它们。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索

handbrake

,选择第一个

jlesage/handbrake

,版本选择

latest

本文写作时,

latest

版本对应为

v24.01.2

在这里插入图片描述

docker

文件夹中,创建一个新文件夹

handbrake

,并在其中建四个子文件夹

config

output

storage

watch

文件夹装载路径说明

docker/handbrake/config
/config

存储其配置、状态、日志和任何需要持久性的文件

docker/handbrake/output
/output

存储转换后的视频文件

docker/handbrake/watch
/watch

存储需要转换的视频文件

docker/handbrake/storage
/storage

包含需要应用程序访问的主机文件
在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用netstat-tunlp|grep 端口号

本地端口容器端口

5803
5800

默认暴露了

2

个端口,其中

5900

VNC

连接端口

在这里插入图片描述

如果没有

VNC

客户端的话,可以删掉

在这里插入图片描述

环境

可变值

LANG

默认值为

en_US.UTF-8

,改设为

zh_CN.UTF-8
TZ

默认值为

Etc/UTC

,改设为

Asia/Shanghai

在这里插入图片描述

更多的变量参数及功能介绍,请参考官方文档:https://github.com/jlesage/docker-handbrake#environment-variables

命令行安装

如果你熟悉命令行,可能用

docker cli

更快捷

如果你的设备支持

Intel Quicksync (QSV)

,可以增加一行

--device /dev/dri

开启硬件加速编码

# 新建文件夹 handbrake 和 子目录mkdir-p /volume1/docker/handbrake/{config,output,storage,watch}# 进入 handbrake 目录cd /volume1/docker/handbrake

# 运行容器docker run -d\--restart unless-stopped \--name handbrake \-p5803:5800 \-v$(pwd)/config:/config:rw \-v$(pwd)/output:/output:rw \-v$(pwd)/storage:/storage:ro \-v$(pwd)/watch:/watch:rw \
   jlesage/handbrake

也可以用

docker-compose

安装,将下面的内容保存为

docker-compose.yml

文件

version:'3'services:handbrake:image: jlesage/handbrake
    container_name: handbrake
    restart: unless-stopped
    ports:- 5803:5800volumes:- ./config:/config:rw
      - ./output:/output:rw \
      - ./storage:/storage:ro \
      - ./watch:/watch:rw \

然后执行下面的命令

# 新建文件夹 handbrake 和 子目录mkdir-p /volume1/docker/handbrake/{config,output,storage,watch}# 进入 handbrake 目录cd /volume1/docker/handbrake

# 将 docker-compose.yml 放入当前目录# 一键启动docker-compose up -d

运行

在浏览器中输入

http://群晖IP:5803

就能看到主界面

在这里插入图片描述

中文界面

如果你配置了环境变量

LANG

zh_CN.UTF-8

,看到册主界面是👇这样的

在这里插入图片描述

这应该是容器里没有中文字体导致的,在网上搜索

Songti.ttc

,将下载的字体文件放到

handbrake

目录

Songti.ttc

下载地址:Songti.ttc(https://portrait.gitee.com/ishelo/QQZoneMood/blob/master/Songti.ttc)

在这里插入图片描述

将字体放到容器内即可

# 从群晖拷贝到容器内dockercp ./Songti.ttc handbrake:/usr/share/fonts/

## --- 以下几步为验证,可以不需要执行 --- ### 进入容器内dockerexec-it--user root handbrake /bin/bash
  
# 扫描字体目录并生成字体信息的缓存
fc-cache -vf# 查看系统内所有中文字体及字体文件的路径
fc-list :lang=zh

在这里插入图片描述

必须要重启一次容器

在这里插入图片描述

原来的小方框已经可以正常显示了

在这里插入图片描述

转码本身是比较耗性能的,如果能使用硬件编解码会有效的降低

CPU

的占用,从官方说明看,

HandBrake

支持

Intel Quick Sync Video

,只需要将设备

/dev/dri

暴露在容器中即可。在大多数情况下,

HandBrake

是可以成功访问

/dev/dri

设备的

软件的使用,说简单也简单,说复杂也复杂,不过好在是中文界面,而且网上能找到使用教程,所以这里就不赘述了。

参考文档

HandBrake/HandBrake: HandBrake’s main development repository
地址:https://github.com/HandBrake/HandBrake

HandBrake: Open Source Video Transcoder
地址:https://handbrake.fr/

jlesage/docker-handbrake: Docker container for HandBrake
地址:https://github.com/jlesage/docker-handbrake

标签: 群晖 docker 多媒体

本文转载自: https://blog.csdn.net/wbsu2004/article/details/136412689
版权归原作者 杨浦老苏 所有, 如有侵权,请联系我们删除。

“开源视频转码器HandBrake”的评论:

还没有评论