安装Jellyfin并配置硬件加速
如果在外网播放家里NAS中的视频,通常会遇到2个问题:带宽不足和编码不支持。这时候我们就需要NAS对原始视频进行二次编码,然后将低码率的视频推送到设备上,能完成这项任务的软件有3个:Plex、Emby和Jellyfin,鉴于前两个都需要付费才能解锁完整功能,我们自然优先选择开源免费的Jellyfin。
安装Jellyfin
Jellyfin为我们提供了一键安装脚本,能够自动检测系统环境,配置软件源并完成安装。
1 | curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash |
安装完成后,使用IP+端口的方式访问Jellyfin的Web界面,完成后续配置。http://your_local_IP_address:8096
配置硬件加速
默认情况下,Jellyfin使用CPU进行视频编解码,速度慢,功耗高,所以最好使用GPU来转码,以提高性能。
Intel GPU
Intel的GPU主要支持QSV和VA-API两种硬件加速方式。QSV性能好,但只支持5代以后的GPU;VA-API性能差,但支持几乎所有的GPU。
安装jellyfin-ffmpeg
1
sudo apt update && sudo apt install -y jellyfin-ffmpeg7
确认/dev/dri/render节点是否存在
PromoxVE中的LXC容器,编辑
/etc/pve/lxc/<CONTAINER_ID>.conf
1
2
3lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
将jellyfin用户添加到render组
1
2sudo usermod -aG render jellyfin
sudo systemctl restart jellyfin安装intel-opencl-icd
1
sudo apt install -y intel-opencl-icd
检查当前GPU支持的编码格式,以及OpenCL运行状态
1
2sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va配置Jellyfin硬件转码
打开
Jellyfin > 控制台 > 播放 > 转码
。- 硬件转码:
Intel QuickSync (QSV)
- QSV设备:
/dev/dri/renderD128
- 启用硬件解码: 根据当前GPU支持的解码格式选择
- 启用硬件编码: 根据当前GPU支持的编码格式选择
- 启用VPP色调映射
- 硬件转码:
配置Nginx反向代理
如果需要使用域名或者https访问Jellyfin服务,可以配置Nginx的反向代理功能。
/etc/nginx/conf.d/jellyfin.conf
1 | # Uncomment the commented sections after you have acquired a SSL Certificate |
参考
https://miaotony.xyz/2023/11/26/Server_HomeLab_4_GPUtranscoding/
https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/
Downloads - Jellyfin: The Free Software Media System
Home | Documentation - Jellyfin Project
Intel media stack on Ubuntu · Intel-Media-SDK/MediaSDK Wiki · GitHub
software recommendation - How to measure GPU usage? - Ask Ubuntu