N100 PVE部署LXC容器安装Emby硬解

有一个N100的小主机,装了一个PVE,又在上面部署了一个WordPress和OpenWrt,以及一个Linux系统,除了这些就没有其它的东西了,平常CPU也没有很高负载,想着也不能浪费了这么多剩余性能,所以就想着榨干它。很久前就听说过硬件解码,当然也在用,就是现在手里的一个黑群,买的是成品黑群,系统啥的都是配置好的,开箱即用,也就没有碰过硬件解码这个问题。现在有N100了就打算鼓捣鼓捣它,研究研究一下硬件解码。

一开始我是想着在LXC安装Docker,再在Docker里面安装Emby的,Docker鼓捣会了再鼓捣在LXC配置Emby。但是鼓捣了两天,LXC和Docker的Emby容器下都能看到/dev/dri下的文件,但是转码下看不到硬件编解码的选项。

后又在Emby论坛上讨论了一圈也没有搞定,结论说是Docker版的Emby只适合在标准虚拟机下,不适用于LXC。遂放弃。

后来就尝试使用Linux版的Emby,遂硬解成功。

环境

CPU:N100,PVE版本:8.2.2,Linux内核版本:6.8.4-2,LXC模板:Ubuntu 20.04 LTS,Emby版本:4.8.10.0,Emby会员。本教程只针对当前环境负责,其它自行尝试。

设备赋权

首先在PVE里给设备赋权。

				
					chmod 666 /dev/dri/*
				
			
创建并配置LXC容器

需要创建一个特权容器,即不要勾选无特权的容器,如何创建LXC容器这里不再赘述了。

安装完不要启动,然后修改/etc/pve/lxc下的配置文件,增加以下内容,再启动LXC容器。

				
					lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
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
				
			
安装Emby并启用硬解

安装步骤这里不写了,自行去官网查看。

在LXC下能正常硬件转码也是误打误撞,当时是先折腾的DD版EE,实在搞不定了,又转战的LXC版EE。而在折腾DD版EE时,因为不能在转码里看到硬解选项,当时也尝试了给/dev/dri设置了666权限这个操作,后来搞不定DD版EE,这个设置也没有修改,直接应用在LXC版EE却成功了。而且这个问题也不是当时就发现的。因为我在折腾DD版EE和LXC版EE时把PP搞了很多设置,而我又不想弄乱PP,所以在XX成功后,重装了PP,然后再重新安装XX版EE,但是XX版EE也不能识别硬件转码,当时我快点崩溃,后来我又去官方论坛咨询,想着晚上或者明天应该能得到回复,但是到目前我写这篇教程,官方依然没有人回复。当天晚上我就想着不能坐以待毙,就想着折腾的这两天所做过的操作,试了几个就试出了在PP上的/dev/dri的666权限问题上。

安装完启用硬件加速,如果能看首选硬件解码器首选硬件编码器选项下的支持的格式就说明你的CPU支持硬件解码,勾选所需要使用的格式以及优先级,当然前提是你使用的的Emby版本也要支持当前CPU才才会显示,二者缺一不可,我当前使用的是Emby版本是4.8.10.0。

播放视频时看到有两个绿色的图标就说明已经启用了硬件解码。

CPU对比

未启用硬件转码时的CPU占用会一直在百分之80左右。

启用硬件转码后CPU大幅下隆,只有百分之15左右徘徊,差距可以说是相当大了。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论!x