ESXi7黑群晖为Jellyfin开启NVIDIA显卡硬件加速硬解,使用NVIDIA显卡加速Jellyfin设置

2021-12-25
0评论
/
5199阅读
爱搜啊

这是一片没有人的领地,基本没有现成的文章和教程,参考了网络上几乎所有相关教程,总结如下。

关于实现之后的效果,可以参考:https://www.lxg2016.com/54176.html

简单来说,有几个要点:

直通NVIDIA显卡时需要加参数

hypervisor.cpuid.v0=FALSE

从而让显卡认为自己在物理机上。

可以使用NFS挂载群晖下的文件夹存放数据

Jellyfin的硬解需要安装ffmpeg,ubuntu下可以

sudo apt install ffmpeg

后用

which ffmpeg

查看位置,填写到jellyfin中

watch -n 1 nvidia-smi

可以查看显卡状态;htop查看cpu和内存状态

我的配置:

Xeon W-2140b, X11SRM-VF, GTX1650

安装ESXi7,并安装ubuntu 20.04.1,直通显卡

略,其他文章已经很多了

参考:http://www.singleye.net/2019/07/vmware-ESXi-6.7.0-update2-%E4%BD%BF%E7%94%A8-gpu-passthrough-%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%9D%91/

注意:

1、直通显卡需要把VGA和声卡都添加进去,也就是需要添加两个PCI设备

2、设置直通的文章已经很多了,此处略去

3、直通需要设置内存预留

4、需要添加参数hypervisor.cpuid.v0=FALSE,让显卡以为还是在物理机中

hypervisor.cpuid.v0=FALSE

安装Ubuntu的显卡驱动和CUDA

这就是一个黑洞……很多文章的方法会出现各种各样的问题,这里我只介绍一种方法。通过这种方式,我成功了。

此处参考了博客:https://morningd.github.io/2018/07/20/esxi-ubuntu-install-nvidia-driver/,特别感谢大佬

安装Ubuntu的显卡驱动和CUDA步骤

禁用 nouveau

nouveau 是 ubuntu 系统自带的开源驱动,所以先要把他禁用掉。

sudo vim /etc/modprobe.d/blacklist.conf

添加一行

blacklist nouveau

执行

sudo update-initramfs -u

重启后如果

lsmod | grep nouveau

没有输出,说明已经禁用了 nouveau 了。

禁用 X 服务:我的ubuntu没有这个服务,但执行一遍也没问题

sudo service lightdm stop

键盘 Ctrl+Alt+F1 进入 tty1,登录。

安装驱动文件

执行

sudo ./NVIDIA-Linux-x86_64-384.66.run --no-opengl-files

安装驱动文件,注意参数。

安装过程中 dkms 选择 yes,其余 continue 就好了。

如果全程没有出错,重启,运行

sudo apt install ffmpeg0

将会输出显卡信息,恭喜你安装成功了。如果你遇到了编译错误,请接着往下看。

这时,使用sudo apt install ffmpeg0就应该可以出现这个界面了。

ESXi7黑群晖为Jellyfin开启NVIDIA显卡硬件加速硬

安装CUDA套件

官网:https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=2004&target_type=runfilelocal

其实也就两行:

sudo apt install ffmpeg1

注:不同版本的行不行我不是很清楚,需要进一步实验

安装Jellyfin

sudo apt install ffmpeg2

以上就安装好了,在网页配置jellyfin的部分略过不表,自己打开IP:8096一步一步来就行了很简单

控制指令:

sudo apt install ffmpeg3

注意:这篇文章后面的硬件加速教程并不适用,稍后会有说明

挂载NFS文件夹

目的在于可以将媒体服务器和NAS解绑,从而让硬件加速成为可能(群晖DSM不支持额外的GPU,至少DS918的系统在6.22下是不支持的,能开机但不能驱动)

设置完成后,我将群晖的/video文件夹映射到了/home/vision/mnt/video文件夹,并在jellyfin中添加了这个文件夹作为Movie的所在地,没有出现问题。(反观windows下的jellyfin不能添加网络文件夹,而且如何让应用把网络文件夹当做本地文件夹的方法全网也没有找到,只能用linux这边的解决方案了)

以下内容可以直接去上面贴出的博客连接

安装并设置客户端

首先,在 Ubuntu 18.04 的机器上执行以下命令来安装 NFS Client。复制

sudo apt install ffmpeg4

安装好以后,我们就可以通过 “showmount” 的命令来查看在指定机器 (IP 地址) 上已经共享的 NFS 文件。比如:

sudo apt install ffmpeg5

就可以看到刚才在 NAS 上共享的文件夹。

如果需要访问 NAS 上的文件夹,首先需要挂载 (mount) 该共享文件夹到本地。

首先在本地建立一个文件夹,比如建立一个名为 nfs_music 的文件夹复制

sudo apt install ffmpeg6

然后执行以下命令挂载:复制

sudo apt install ffmpeg7

“/volume1/music” 是共享文件夹在 NAS 上的目录。

为查看挂载的效果,可以使用 sudo apt install ffmpeg8 命令复制

sudo apt install ffmpeg8

你将得到类型下面的系统输出:复制

sudo apt install ffmpeg9

设置开机自动挂载 NFS

执行以上步骤后,如果重启客户端机器,需要再次执行 mount 命令来挂载 NFS 共享目录,如果希望在开机时自动挂载,需要编辑 /etc/fstab 文件,执行:复制

which ffmpeg0

在文件末尾加上如下的行:复制

which ffmpeg1

用你的 IP 地址和目录名替换掉命令中相应的内容,编辑完以后,保存退出。 这样在机器重启时也能自动挂载 NFS 共享目录了。

为Jellyfin开启显卡加速

这就是这篇文章的关键部分了,似乎这个需求非常小众,单独买一张显卡为了解码也并不是大多数人会做的选择。(但就是想All in One)

这里需要安装FFmpeg

这是NVIDIA官方关于FFMpeg的页面:https://developer.nvidia.com/ffmpeg

重点在于这一部分:

安装FFmpeg

这个方法看起来很正规,但比较复杂,我并没有采用。

我选择了一种非常简单的安装方法:

sudo apt update
sudo apt install ffmpeg

ok,这就可以了

然后使用:

which ffmpeg

查看安装路径,我安装到的是 /usr/bin/ffmpeg,记下这个位置

然后去web页面,如下配置:

为Jellyfin开启显卡加速

这里可以勾选上所有的硬件解码选项,因为GTX1650都可以硬解这些视频

硬解能力参考:https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

可以看到,能买到桌面版的最便宜的,功耗最低的,全都能解码的就是GTX1650了,这也是我购买GTX1650作为解码卡的原因

2021.1.25补充一点:GTX1650的NVENC/NVDEC使用的是Volta架构,而从GTX1660开始才是Turing架构,买新不买旧建议1660,当然如果想要一点Volta遗物的话,1650也是可以的:)


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-12-25发布