HandBrake是一个开源的、功能强大的视频转换软件。
jlesage/handbrake,是HandBrake的Docker容器,可以通过浏览器或VNC客户端来访问使用的图形用户界面。
且有个自动转换的模式,把视频文件放入到监视文件夹中,然后自动处理无需其他操作。

之所以找到它,是因为在VPS上离线下载的视频,文件过大,觉得没必要这么高的分辨率和清晰度;再者,想在远程端直接完成视频大小降级。

快速启动

安装后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

结语

先这样了,好久没记录过东西了,真累,放个截图吧。

chrome_Hw2WUQOCKk.png

文章目录