PVE下虚拟机下Jellyfin实现N6005硬解,基于华硕PN41
购买理由
最近无聊,整个软路由系统,分摊一下主机压力。
同时计划把一些常用服务搭配上去。
折腾
软路由系统,折腾问题很多,本文就不说了。本文主要是折腾下怎么配置好Jellyfin硬解。
介绍下本机软硬件配置:
主机PN41,CPU:N6005,内存16G
32GU盘装PVE启动
1T.M2硬盘作为附加存储
1台Windows主机,作为仓库(实际是本人的专用机)
PS:本文中经验,可能需要看官有一定的linux基础
折腾小结:平台比较新,网上有人提供方法,但是不是基于PVE的,所以,个人也没测试;个人比较看好PVE一点。
折腾经历:
1.用【有特权的容器】装好PVE官方提供的Ubuntu22,映射显卡,mount视频文件夹,挂在官方的Jelllyfin库
软解OK,硬解,最后死在了[jellyfin driver does not support VBR RC mode]
PS:其实,这个时候,我已经猜到问题所在,就是搞不定。无耐就是考虑换版本。
2.换Ubuntu中的ffmpeg,屏蔽i965一系列的操作,失败
3.装天朝专用Jellyfin的Docker,问题依旧。这其中,还遇到了虚拟机无法加载apparmor问题,后面有解决方案。
前前后后用了8小时时间。无耐都是失败。
最后把上述代码复制下来,将其中的部分修改。
-rc_mode VBR修改为-rc_mode CQP
结果,出乎意料,竟然成功了。
如是找到了解决的曙光。
然后网上下载Jellyfin的源代码,自行编译。
下到代码后,用搜索-rc_mode VBR只找到两处。编译完成后,一切ok。
最后总结:
N6005驱动不支持VBR模式,至少我装的驱动不支持,导致视频输出出错。网上有介绍可以屏蔽的。可惜是基于Unraid,在PVE下试了下搞不定,通过看代码感觉是默认将显卡识别成i915系列,导致采用VBR。
折腾教程
1.PVE安装,自行操作,这个简单,教程大把。
2.新建CT
需求注意【无特权的容器】勾勾去掉!
3.容器的设置
容器编号->选项->功能,双击打开,将其中的【嵌套】打上勾
4.编辑容器的conf
在PVE的shell中输入nano /etc/pve/nodes/你的pve名称/容器ID.conf
加入如下代码:
#Intel iGPU:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
#解决apparmor
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
5.启动容器,修改源
ffmpeg我用的官方的
jellyfin-web也可以用官方的,不过为了简单,建议用我打包好的
jellyfin-server只能用我编译的了,其实也就一句话不同。
容器中执行nano /etc/apt/sources.list修改源
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
安装ffmpeg
先从本文的文件中下载相关文件,当然,也可以自行去官方下载。
jellyfin-ffmpeg5_5.1.2-3-jammy_amd64.deb
执行安装命令:
dpkg -i jellyfin-ffmpeg5_5.1.2-3-jammy_amd64.deb
会出现一大堆错误,这里给出解决方案:
apt install -y libass9 libbluray2 libfontconfig1 libfreetype6 libmp3lame0 libopus0 libtheora0 libvorbis0a libvorbisenc2 libvpx7 libwebp7 libwebpmux3 libx264-163 libx265-199 libzvbi0 libopencl1 ocl-icd-libopencl1 libopencl-1.2-1
apt --fix-broken install
官方依赖很多库文件,我也是奇怪怎么不自行装上去,搞出一堆错误。看起来怪吓人的。
配置jellyfin
直接解压jellyfin-all(云盘速度慢,特意放了个jellyfin-server,就是jellyfin-all基础上去掉了jellyfin-web,适合喜欢折腾多一点的人去弄。)
因为我是在windows下共享的一个目录放的文件,所以直接到目录下执行./jellyfin,就可以正常使用了。
后台配置一下ffmpeg路径,打开硬解,就可以了。
/usr/lib/jellyfin-ffmpeg/ffmpeg
其他事项
1.安装显卡驱动
PVE的shell下安装apt install intel-media-va-driver
虚拟机下apt install intel-media-va-driver-non-free
PVE下面,只有不带non-free,虚拟机下有两个
非正式测试,主机需要装,虚拟机貌似不用,因为jellyfin中的ffmpeg就可以驱动了
2.ffmpeg
文中介绍的是直接用的官方版本,实际中我是先直接装了APT中的,卸载后在装的。
这点上不知道会不会对后续有影响。命令行apt install ffmpeg
3.相关文件
jellyfin-server.zip本人编译的服务器文件,解决编码问题。其实也就一个字的事儿。
jellyfin-all.zip在上面的基础上加入了jellyfin-web,一般解压后,直接运行,jellyfin就🆗了
4.其他配置(systemd,实现自动加载配置)
#文件名/etc/systemd/system/mnt-t3450.mount
[Unit]
Description=加载T3450文件夹
[Mount]What=//192.168.99.160/文件下载
Where=/mnt/t3450 #这个路径必须同文件名匹配
Type=cifs
Options=username=用户名,password=密码
[Install]
WantedBy = multi-user.target
#文件名/etc/systemd/system/jellyfin.service
[Unit]
Description=Jellyfin Media Server
After=mnt-t3450.mount #注意依赖前面的mount加载路径
[Service]
Type=simple
User=root
RestartSec=10s
ExecStart=/mnt/t3450/jellyfin/jellyfin --service #注意Jellyfin文件的路径
[Install]
WantedBy=multi-user.target
新建上面两个文件
执行下面的命令生效
systemctl daemon-reload
systemctl enable mnt-t3450.mount
systemctl enable jellyfin.service
总结
机子在于折腾。发现问题,自行解决问题,娱乐自己。
希望本人踩到的坑,能帮到路人。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
Ronanluo
校验提示文案
NyanMisaka
校验提示文案
值友9818219604
首先sudo dmesg|grep i915 ,应该缺失 ehl_guc_70.1.1.bin 这个驱动。
然后/usr/lib/firmware/i915/ 放入去看看
重启就可以了
校验提示文案
接水军活
校验提示文案
值友6995487111
校验提示文案
rohochan
校验提示文案
xsohydra2015
校验提示文案
superliurui
校验提示文案
standin000
校验提示文案
standin000
校验提示文案
superliurui
校验提示文案
值友9818219604
首先sudo dmesg|grep i915 ,应该缺失 ehl_guc_70.1.1.bin 这个驱动。
然后/usr/lib/firmware/i915/ 放入去看看
重启就可以了
校验提示文案
xsohydra2015
校验提示文案
rohochan
校验提示文案
值友6995487111
校验提示文案
接水军活
校验提示文案
NyanMisaka
校验提示文案
Ronanluo
校验提示文案