分享一种简单得不能再简单的群晖DS918+下Jellyfin调用核显硬解的办法
创作立场声明:不喜勿喷,反正我看不见。截图累死人,转载请注明出处,谢谢
最近可能下雨比较多,水分比较充足,所以就又水一篇骗金币的水文排排水吧
张大妈上介绍群辉,介绍unRAID,介绍各种NAS系统下运行Doxker让Jellyfin调用核显硬解的教程太多了,但是都离不开一项操作,那就是SSH连上终端,然后输入一大堆命令把/dev/dri/文件夹下的核显驱动挂载到Docker里的Jellyfin,让其能够调用核显进行GPU硬解。
所谓大道至简,那有没有一种方法,可以不用SSH登录终端,不用输入一大堆命令,就能让Docker里的Jellyfin调用核显实现硬件解码的方式呢?答案是肯定的,那么今天我们今天就来分享这种点几下鼠标就把核显直通给Docker里的Jellyfin的方法。
有人可能觉得登录个SSH,又是docker pull,又是-v又是-p又是--device添加一大堆参数的样子很牛“哔”。 但是,这只是你认为的牛“哔”,别人可不一定这么认为。曾经,本老司机也以为自己输入一大堆命令操作Linux很牛“哔”,但某日,公司里一个小姐姐一脸懵逼的问我:“你对着一个黑色窗口噼里啪啦输入那么多东西,是干啥呢?”。我幡然醒悟,想通过技术撩妹那是行不通的,小姐姐们才不懂,也不会去关心这些。她们只会觉得你随便点点几下鼠标,就帮她把一个Excel表格的数据整得明明白白厉害,而不会觉得你对着一个窗口捣鼓半天而不明所以厉害。 所以现在能一个脚本跑完的操作,打死我都不会去自己一行行代码,一行行命令去手打输入。有那时间,还不如让脚本自己在那跑着,咱去一边逗逗小姐姐多好
扯远了,扯远了,我们回正题
那么,怎么样才能通过简单的点几下鼠标,就能把核显直通给Docker里的Jellyfin调用呢?
下面请登录你的群晖,右手握住鼠标,跟着我一起操作(左撇子请自觉使用你得左手 )
所谓万事开头难,那么第一步当然是在群晖里点击Docker的图标,否则下面的操作你也实现不了
让我们在“注册表”里搜索jellyfin,经过漫长的“加载中...”,给我们列出了一大堆的结果
双击第一个获得星星最多的jellyfin/jellyfin,再次经过漫长的“加载中...”,它又弹出一了个窗口
这里默认会为你选择"latest"版本的Docker镜像,这是Jellyfin官方打包的最新Stable稳定版Docker包,但不知道是这群老外最近被疫情搞得焦头烂额,还是真的粗心大意,最近几个版本的Docker镜像都有问题,具体的表现就是配置完成后,点击SAVE无法保存,会提示There was an error processing the request. Please try again later.
所以我们需要点一下右边的蓝色小三角,手动选择一下版本,据老夫测试,发现10.4.3这个版本能够正常使用,不会有坑。当然,你愿意SSH进到Docker里边慢慢调试也行,反正我是不愿意的 所以我们在下拉的选择框中找到10.4.3版本的,不要选什么"10.4.3-amd64"也不要选什么"10.4.3-arm64",就选"10.4.3",相信我,准没错
选好之后,点击“选择”这个蓝色方框,就会开始下载了,其实这一步就相当于你在SSH里输入的docker pull jellyfin/jellyfin
又是经过漫长的等待,这个600兆的Docker镜像终于下载好了,先别着急去启动,让我们先在File Station下建立一个jellyfin的文件夹,然后再在jellyfin文件夹下再建立config和cache两个文件夹,目录结构如下图
当然你喜欢在别的地方建立也行,我这么做只是习惯使然,一目了然,一看就知道这仨文件夹是docker下运行的jellyfin使用的文件夹。
接下来让我们继续鼠标操作之旅,回到Docker里点击“映像”,选中之前已经下载好的Jellyfin的镜像,再点“启动”,这时会弹出个创建容器的窗口,继续点击“高级设置”->“卷”,让我们点击“添加文件夹”把刚刚在File Station中创建的文件夹分配一下,顺便把你存电影的文件夹也一起添加进去,要不你只能看空气 请看图
其实这一步就是你在SSH里输入的下面这一大串代码
-v /volume1/docker/jellyfin/config:/config
-v /volume1/docker/jellyfin/cache:/cache
-v /volume1/video:/video
既然说到上面这一大串东西,顺带再啰嗦一下吧,-v /volume1/docker/jellyfin/config:/config就是把你硬盘上的config文件夹挂载到Docker里的Jellyfin下的config下,用来存放Jellyfin的配置文件,用户数据,日志和在线转码的临时文件夹的,我建议如果你的群辉里有SSD的存储空间,最好是把这个文件夹放在SSD上,因为你在Jellyfin上转码播放视频的时候,Jellyfin会调用核显和FFmpeg将正在播放的视频,分段生成一个当前播放码率的临时文件,大概3-5分钟一段,播放完成便会删除,这些临时文件存在config文件夹下的transcoding-temp文件夹里,所以这是个频繁读写的文件夹,当然要好好利用一些SSD的读写性能来加速这个过程啦。如果没有SSD也无所谓,放机械盘上也行,但是最好与存电影的硬盘分开,放在一个独立的存储空间里就行。如果你群晖只有一个存储空间,那当我啥也没说,爱咋咋地,又不是不能用,是吧 而-v /volume1/docker/jellyfin/cache:/cache这句当然就是把cache挂载到Jellyfin里的cache啦,这个cache其实就是一些页面的缓存和临时文件的存放地方。
行了,废话一大堆,下面继续,切换到“网络”这里,很多教程里都是-p 8096:8096又-p 8920:8920做端口映射,其实这两段代码的意义,就是下一个选项“端口设置”里添加的“本地端口”和“容器端口”,没必要,步骤太繁琐了,Jellyfin官方的Docker文档不知道有多少人看过,网络的参数官方例子其实就是一个--net=host搞定,就是下图中“使用与Docker Host相同的网络”打上勾就行了
对,就是这么简单,打个勾就行了 当然,你的群晖如果接入的网络比较复杂,或者Jellyfin的默认端口已经被占用,那就只能通过“端口设置”里来做转发了。我这个教程的目前很明确,就是一切从简,怎么方便怎么来,而且我想一般家庭里的网络也复杂不到哪里去。
好了,所有的鼠标操作就是这些,都设置好了就放心大胆的点“应用”吧,其他的都不用理会。然后“下一步”->“应用” 这里没有截图,因为忘记了。
这时候你可以看到Jellyfin的Docker容器已经启动起来了,让我们在浏览器访问http://你的群晖IP:8096,对Jellyfin噼里啪啦一顿初始化的操作,并在后台的“播放”-->“转码”里设置好VAAPI并保存后,让我们来看个片试试效果如何
是不是像我一样播放错误? 是那就对了,必须播放不了啊,关键的操作还没做呢
围观群众一边摩拳擦掌,一边表示:你丫叽叽歪歪水了半天的字数,就让我看这个?能不能说重点?
嘿嘿嘿,好东西肯定要留到最后再说嘛,要不开篇马上告诉你方法,你马上就看完直接关浏览器走人了,我还怎么水文章骗金币
好了,下面开始最关键的一步操作,放心还是用鼠标,不会让你登录SSH。如果你有探索的精神,你也可以这个时候登录SSH进入Jellyfin的容器内部看看,你会看到其实这个时候是没有直通核显驱动给容器的
没错,Jellyfin的容器里/dev下没有dri文件夹,更别说什么有/dev/dri/renderD128给它调用了
我们先把容器给关闭了,然后点击“编辑”,下面开始我们最重要的一次鼠标点击
让我们看看一个一直被忽视的选项“使用最高权限执行容器”。没错,就是它,把它勾上,其实这个操作就是很多教程里开始的第一步sudo docker run -d --name jellyfin 本来在浏览器里打个勾就能搞定的操作,为啥那么多人喜欢这一大串命令呢?你说是我鼠标打个勾方便,还是你输入一大堆命令方便
下边的“启用自动重新启动”这个也一起勾上,这其实就是--restart unless-stopped这一句的操作
好了,具有探索精神的你这个时候可以再去容器里看看,是不是/dev下有dri文件夹了?里边是不是也有renderD128了?
让我们再来看个片吧 怎么样?可以在线转码了没?CPU占用高不?
再去群晖里TOP看看,有看到排第一的那条没?正常调用核显解码了吧?
还可以去transcoding-temp里看看,是不是有转码的临时文件生成?
好了,水完了,是不是全程鼠标操作
usee00123
校验提示文案
云栖隐者
校验提示文案
行色漫漫
校验提示文案
aho601
校验提示文案
壹袋Jones
校验提示文案
丨天马丨
校验提示文案
那您能帮帮我吗
校验提示文案
yujun8888
校验提示文案
风舞淼痕
校验提示文案
火染轩辕
校验提示文案
coraloneee
校验提示文案
飞安东
校验提示文案
值友3646908204
校验提示文案
109109109lf
校验提示文案
aho601
校验提示文案
Waltere
校验提示文案
ivery3
校验提示文案
值友9211771605
校验提示文案
tkggdhqcss
校验提示文案
星逝z
校验提示文案
hypjyx
校验提示文案
[已注销]
校验提示文案
值友1750145355
校验提示文案
生命在于折腾666
校验提示文案
huanmay
校验提示文案
值友9211771605
校验提示文案
值友9211771605
校验提示文案
SQkuan
校验提示文案
是毅种循环
校验提示文案
飞安东
校验提示文案
金猪还神
校验提示文案
值友5858646882
校验提示文案
金碧之才
校验提示文案
ivery3
校验提示文案
QiKoo
PlaybackErrorNoCompatibleStream,怎么解决啊?求助
校验提示文案
旧手机换盆
校验提示文案
公牛老爹
安装你docker列表里面的第二个linuxserver/jellyfin,安装好设置硬解就行了,无需任何特殊设置。
校验提示文案
ivery3
校验提示文案
漫天风雪
校验提示文案
麦克阿瑟_2009
校验提示文案