我的NAS使用E5处理器,由于没有编解码硬件加速,在用jellyfin播放h265 10bit HDR时会进行实时转码,cpu占用1800%,功耗150W。
Tesla P4这张卡现在价格来到300块,8G的显存,接近1060的3D性能,可以达到多路4K@60的编解码性能,非常适合。
我的NAS系统安装Debian12 CasaOS,这里记录下配置过程。
一、首先安装必要的包
1 |
apt install linux-headers-amd64 gcc make libvulkan1 pkg-config |
二、初次运行驱动,会提示加载了开源驱动,问是否自动进行关闭,选yes,然后重启系统
1 |
./NVIDIA-Linux-x86_64-535.104.05-grid.run |
三、再次运行驱动, 开始编译内核模块,一路ok
是否安装32位兼容库,我选No,这里都可以。
像这样,安装完成。
运行nvidia-smi 检查下状况, 可以看到状态打印OK,这里显存不足8G是默认开启了ECC,可以关一下
1 2 3 4 |
root@NAS:~# nvidia-smi -e 0 Disabled ECC support for GPU 00000000:01:00.0. All done. Reboot required. |
重启后再看,显存OK
重点来了,jellyfin是运行在Docker环境中,以下是关键:
一、配置仓库
1 2 3 4 5 6 |
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \ && \ apt-get update |
二、安装NVIDIA 容器工具包:
1 |
apt-get install -y nvidia-container-toolkit |
三、配置docker
1 |
nvidia-ctk runtime configure --runtime=docker |
四、docker默认使用nvidia runtime 并重启docker
1 2 3 4 5 6 7 8 9 10 11 12 13 |
vim /etc/docker/daemon.json { "default-runtime": "nvidia", # 加这一行 "runtimes": { "nvidia": { "args": [], "path": "nvidia-container-runtime" } } } systemctl restart docker |
五、在CasaOS中修改jellyfin app的环境变量,加入这两行
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
保存后,再app内执行nvidia-smi,则可以看到信息打印就算安装成功
在jellyfin的控制台->播放->转码中进行如下设置,并保存
自此配置完毕,再通过web播放265 10bit 视频时,实时转码就开始调用p4 显卡加速
原创文章,转载请注明: 转载自贝壳博客