为什么选择 Jellyfin 而非 Plex 或 Emby?
在本文写作之时,各软件的功能对比如下:
软件 | 硬解转码 | 浏览器 HEVC 直接串流 | HDR 色调映射 | IPTV | 源代码 |
---|---|---|---|---|---|
Plex | 付费 | 无 | 付费 | 无 | 闭源 |
Emby | 有 | 无 | 有 | 付费 | 闭源 |
Jellyfin | 有 | 有 | 有 | 有 | 开源 |
软件包版本信息:
软件包 | 版本 | 查看命令 |
---|---|---|
jellyfin | 10.7.6.0 | jellyfin --version |
ffmpeg-jellyfin | 4.3.2-Jellyfin | /usr/lib/jellyfin-ffmpeg/ffmpeg |
intel-media-va-driver-non-free | 21.2.1 (12ca7a4) | vainfo |
不同软件版本搭配可能产生兼容性问题,因此如果遇到问题,可以检查软件版本,尝试使用文中的配置。
使用环境:
本文作者在群晖 DS720+ 上使用 Jellyfin,其 CPU 为 Intel J4125。如果你使用的是 Intel 平台的 Linux 系统,并且 CPU 不比 J4125 更旧,大概率也适用。但 Intel 的最新 CPU 图形架构(Xe)尚未验证。
0. 为什么要使用 Quick Sync, VAAPI 又不行吗?
- 实测 VAAPI 的性能可能只有 Quick Sync 的一半,至少在 J4125 上是这样。
- VAAPI 对 HDR 色调映射的支持较差,即使搞定,性能也不理想。
- Quick Sync 是 Intel 的专有技术,开源软件包不会预装,需要自行安装。
- 作为硬件编码三剑客(Quick Sync/NVENC/AMF)中性能较佳的选择,既然花了钱,何不充分利用?
(左边是 VAAPI,只有 26fps;右边是 Quick Sync,有 37fps)
1. 使用 LinuxServer.io 提供的 Jellyfin 镜像
在群晖的 Docker 注册表里搜索 linuxserver/jellyfin
,详细参数设置可参考 官方说明。无需使用命令行,可以在群晖 Docker 图形界面中直接配置各项参数。
注意事项:
- 如果曾用过
jellyfin/jellyfin
的镜像,二者的 config 目录结构不通用。 - 使用 host 网络而非 bridge,否则 DLNA 可能无法正常工作。
- 高权限运行 Docker,否则需手动处理
/dev/dri
的设备映射和权限。
2. 进入容器的 bash 进行进一步操作
在 Docker 容器详情中,新增一个终端机。
该镜像基于 Ubuntu,先运行 apt update
。
3. 更新 ffmpeg-jellyfin 软件包
先查看现有软件包的版本:
/usr/lib/jellyfin-ffmpeg/ffmpeg
如果版本号低于 4.3.2,需要升级。具体步骤如下:
- 安装 wget 命令:
apt install wget -y
从 Jellyfin 官方软件仓库 找到最新的软件包版本。
- 确定 Ubuntu 版本名:
cat /etc/lsb-release
- 确定 CPU 架构:
uname -a
- 确定 Ubuntu 版本名:
- 下载软件包:
cd /home && wget https://.....
(替换为实际软件包地址) - 安装软件包:
dpkg -i xxxx.deb
(替换为实际文件名)
4. 安装 Intel 核显的解码驱动(non-free)
感谢 LinuxServer.io 的准备工作,安装非常简单:
apt install intel-media-va-driver-non-free vainfo -y
安装后,通过 vainfo
检查,确保 iHD driver
版本号为 21.1.1 以上:
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.2.1 (12ca7a4)
输出内容中会列出支持的编码格式。
5. 在 Jellyfin 中启用 Intel Quick Sync 和相应功能
建议配置如下图所示:
6. 检查播放转码效果
测试几部 HEVC 编码的 4K 视频:
4K SDR HEVC to 4K SDR H264:
转码速度高达 40fps 左右,且画质良好。
资源占用:
可以忽略不计,不影响 NAS 的其他工作。
4K HDR HEVC to 4K SDR H264:
色调映射正常,转码速度依然在 40fps 左右,非常成功。
现在可以放心地在 Jellyfin 中存放 HDR 格式的电影,在任何设备上播放都不成问题。
7. 在浏览器中直接串流 HEVC
目前,MacOS 和 Windows 10 以上版本的系统,均支持通过浏览器(Safari/Edge)进行 HEVC 硬解。只需在 Jellyfin 中的 用户-设置-播放 中打开 “优先使用 fMP4-HLS 媒体容器”。
如果硬件、操作系统和浏览器都支持 HEVC 直接串流,播放 HEVC SDR 视频时不需要转码:
播放 HEVC HDR 视频时,色调映射仍在工作,符合预期: