HandBrake - 在Docker下自动视频转换
HandBrake是一个开源的、功能强大的视频转换软件。
jlesage/handbrake,是HandBrake的Docker容器,可以通过浏览器或VNC客户端来访问使用的图形用户界面。
且有个自动转换的模式,把视频文件放入到监视文件夹中,然后自动处理无需其他操作。
之所以找到它,是因为在VPS上离线下载的视频,文件过大,觉得没必要这么高的分辨率和清晰度;再者,想在远程端直接完成视频大小降级。
- HandBrake:https://handbrake.fr/
- jlesage/handbrake:https://hub.docker.com/r/jlesage/handbrake
- jlesage/handbrake @Github:https://github.com/jlesage/docker-handbrake
快速启动
安装后Docker之后,来个示例,运行:
docker run -d \
--name=handbrake \
-p 5800:5800 \
-v /docker/appdata/handbrake:/config:rw \
-v $HOME:/storage:ro \
-v $HOME/HandBrake/watch:/watch:rw \
-v $HOME/HandBrake/output:/output:rw \
jlesage/handbrake
/docker/appdata/handbrake
:日志等持久性的文件$HOME:/storage
:挂载需要容器内使用的文件$HOME/HandBrake/watch
:自动视频转换监视文件夹,把视频文件放入即可自动转换$HOME/HandBrake/output
:这是视频自动转换后保存的位置
通过浏览器打开http://your-host-ip:5800
访问HandBrake图形界面。
更多选项
更多的选项当然是官方的文档:https://github.com/jlesage/docker-handbrake,这里我说下我个人的设置。
安全
首先不能让别人看到扫描到这个端口号,不能被人滥用了,所以指定变量VNC_PASSWORD
设置一下访问密码;
既然设置了密码,要来个SSL加密访问吧,但我个人使用觉得没必要;
SSL访问可以设置变量启用,然后上传证书到指定目录;或者直接用Nginx、Caddy等各种反代,Caddy就很方便,自动申请证书。
具体见官方文档,我只设置了个VNC密码:
-e VNC_PASSWORD="passwd"
默认视频格式
docker-handbrake,设置的默认视频格式是:Very Fast 1080p30
,看HandBrake官方文档,这视频格式是很小的;但我觉得还可以更小,720p的就可以了。所以我在启动容器的时候,有以下参数:
-e AUTOMATED_CONVERSION_PRESET="Very Fast 720p30"
官方文档里有常规预设值的介绍,可查看找合适的视频转换预设值:传送门。
!Very Fast 720p30
有点辣眼睛,时长34:43的视频大小是373.22MB,我得试试Fast 720p30
。
删除源文件
默认不自动删除源文件,如需则添加变量:
-e AUTOMATED_CONVERSION_KEEP_SOURCE="0"
我测试后发现失败了!权限问题,我在主机用root
用户增加视频的,主机和容器之间发现了权限问题;算了,这个先不管了。
额外的
- VNC访问,需要额外映射端口
5900
; - 视频格式,有设置视频大小和质量的变量,也有设置视频格式的变量
AUTOMATED_CONVERSION_FORMAT
; - 可以额外监视4个文件夹,不同文件夹可以预设不同的转换视频参数,具体变量参数见官方;
- Hooks预设脚本,事前事中事后,但容器里好像也不好执行;
- 还有Intel的Quick Sync Video。
拖到本地用Caddy:
docker run -d --name caddy -p 2015:2015 -v $HOME/HandBrake/output:/srv abiosoft/caddy
注意
自动化转化视频进度不会在GUI中显示,(⊙﹏⊙) 但实际上有个小窗口(我在下面放的截图中有,鼠标悬停处),并不会在HandBrake主界面中显示。
可以用命令docker logs handbrake
查看,handbrake
是启动时候设置的容器的名字。
完整的日志可以在/config/log/hb/conversion.log
(容器里的目录)查看,如果上面的没怎么修改,对应本地的应该是/docker/appdata/handbrake/log/hb/conversion.log
。
结语
先这样了,好久没记录过东西了,真累,放个截图吧。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。