x86路由也玩核显QSV转码,Docker搭建Handbrake
前几天我的x86路由更新了核显驱动,这下小主机的核显不浪费可以用于视频转码了。接下来我介绍通过Docker搭建Handbrake,以及如何使用核显QSV转码。
首先确定你的Openwrt系统是否支持核显驱动,在SSH中输入“ls /dev/dri”确认是否有核显驱动。Intel的核显有一个QSV转码转码功能很强(UHD630转码性能可以赶上GTX1050),所以用来转码还是可以的。
如果有核显驱动,那么我们用Docker搭建Handbrake时就可以填写参数调用核显进行解码。首先分享一下我的docker-compose文件(这个是案例,你可以根据实际需求修改):
version: '3.3'
services:
handbrake:
container_name: handbrake
ports:
- '5800:5800'
volumes:
- './config:/config:rw'
- './storage:/storage:ro'
- './watch:/watch:rw'
- './output:/output:rw'
devices:
- /dev/dri
environment:
- LANG=zh_CN.UTF-8
- AUTOMATED_CONVERSION_PRESET='Hardware/H.265 QSV 1080p'
- AUTOMATED_CONVERSION_KEEP_SOURCE=0
- USER_ID=0
image: 'jlesage/handbrake:latest'
逐条讲解一下参数的意义:
ports:
- '5800:5800'
用于开放5800端口访问GUI界面(不使用GUI界面也可以使用自动转码)。
volumes:
- './config:/config:rw'
- './storage:/storage:ro'
- './watch:/watch:rw'
- './output:/output:rw'
用于映射路径。第一个是Handbrake配置路径;第二个是Handbrake可以访问本机的存储路径;第三个是自动转码源文件夹;第四个是输出文件夹。
我建议用docker-compose搭建镜像时,首先在主机新建一个docker-compose文件夹,每个镜像再新建以镜像名命名的文件夹方便管理配置和文件,我把这四个文件夹都设置在了./docker-compose/handrake文件夹。(实际可以根据个人需求优化,比如第二条可以修改成下载文件夹方便直接访问下载目录进行解码,第四条输出文件夹可以设为电影文件夹转好码直接存档)
devices:
- /dev/dri
用于调用核显驱动
environment:
- LANG=zh_CN.UTF-8
- AUTOMATED_CONVERSION_PRESET='Hardware/H.265 QSV 1080p'
- AUTOMATED_CONVERSION_KEEP_SOURCE=0
- USER_ID=0
用于环境参数设置(更多参数设置具体官方有英文说明)。第一条是设置程序中文界面;第二条是修改默认解码方式为QSV(核显需要支持QSV,否则不用添加这条);第三条是watch文件夹转码完成后自动删除文件(不想删除源文件不要添加这条);第四条是以root权限运行(防止调用核显驱动失败)。
我把docker-compose.yaml放到./docker-compose/handrake然后运行docker-compose up -d就可以拉取镜像并运行了。
注意此时进入GUI界面是乱码的,有的教程会教你在环境参数里添加ENABLE_CJK_FONT=1,事实上这样做很可能导致镜像运行后无法访问GUI界面。我推荐一个方法,首先在电脑上找到一个中文字体(随便找一个都可以,我用的是阿里巴巴普惠体)。复制到小主机,然后用docker cp命令把这个字体复制到docker里。
docker cp 字体文件地址 docker名称:/usr/share/fonts
#举例 docker cp /mnt/sata2-1/docker-compose/firefox/AlibabaPuHuiTi.ttf 8a373b071ebe:/usr/share/fonts
这下Handbrake的界面变成中文了。GUI界面可以设置解码参数比较直观,但是玩x86路由要的是自动化。所以可以通过将文件保存到watch文件夹,然后再运行容器进行自动转码(你还可以通过配合使用Linux脚本实现更多自动化设置)
转码性能方面UHD630转码2小时H.264 1080P格式的视频到H.265 1080P需要1小时,下面是CPU占用情况:
就介绍到这里!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
张Ruiqian
校验提示文案
张Ruiqian
校验提示文案