问题
jellyfin是一个开源的视频管理平台,比群晖自带的video station功能更强,但是直接通过918的docker界面直接安装的jellyfin,由于没有进行device的映射,因此实际上是没有启动硬解的。
表面上jellyfin的控制台开启了VAAPI,但实际上在后台一直在报错。
后台报错如下:
原因
这是由于群晖的docker控制台的限制,群晖核显/dev/dri/renderD128并没有真正映射到容器中。
解决方案
ssh到群晖后台,利用root账户启动docker,例如:
sudo -i
docker pull jellyfin/jellyfin:10.5.5-amd64
docker run -d --volume /volume1/docker/jellyfin:/config --volume /volume1/docker/jellyfin:/cache --volume /volume1/video:/media --net=host --restart=always --device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card0:/dev/dri/card0 --name="jellyfin10.5.5" jellyfin/jellyfin:10.5.5-amd64
# 命令详解,以下部分不需要执行
sudo -i #进入root账户
docker pull jellyfin/jellyfin:10.5.5-amd64 #拉取jellyfin的images,如果提示TLS超时说明你家访问dockerhub太慢,需要设置docker镜像加速,具体教程请百度
docker run -d /
--volume /volume1/docker/jellyfin:/config / #这里的/volume1/docker/jellyfin请根据你本地jellyfin配置所在的文件夹进行修改
--volume /volume1/docker/jellyfin:/cache /
--volume /volume1/video:/media / #这里的/volume3/video请根据你本地电影存放的文件夹进行修改
--net=host / #让jellyfin和群晖使用同一个子网,方便dlna投影
--restart=always / #jellyfin容器随群晖开机自动启动
--device /dev/dri/renderD128:/dev/dri/renderD128 / # 核心就是这两句,把renderD128和car0
--device /dev/dri/card0:/dev/dri/card0 / # 作为device映射到jellyfin容器中
--name "jellyfin10.5.5" /
jellyfin/jellyfin:10.5.5-amd64 # 这里的jellyfin/jellyfin:10.5.5-amd64请根据你的jellyfin的image版本进行调整
核心就在于--device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card0:/dev/dri/card0
这两句,之后就可以愉快的玩耍啦,实测一台白918和另一台蜗牛j1900安装的黑群晖均可以硬解。而且后续通过群晖docker控制台停止、重启该容器,都不影响硬解。
实测环境 | 版本 |
---|---|
群晖 | 918 6.2.1-23824 Update 6 |
jellyfin | 10.5.5-amd64 |
ffmpeg | ffmpeg 4.2.2-28 |
更新:截止2020年11月17日,jellyfin已更新至10.6.4
docker run -d --volume /volume1/docker/jellyfin/config:/config --volume /volume1/docker/jellyfin/cache:/cache --volume /volume3/video:/media --net=host --restart=always --device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card0:/dev/dri/card0 --name="jellyfin10.6.4" jellyfin/jellyfin:10.6.4-amd64