CentOS 上优化 Jellyfin 播放体验的实用清单
一 系统与基础网络优化
- 保持系统、内核与 Jellyfin 为最新稳定版,及时获得性能修复与兼容性改进。
- 调整 systemd 内存限制(如 MemoryMax/MemoryMin),避免 OOM 导致播放中断,同时防止无限制膨胀。
- 配置 并发会话限制(如 MaxConcurrentSessions),按设备性能与带宽合理限流,避免过载。
- 优化网络:启用 QoS 保障关键流量,尽量使用 有线千兆/2.5G 网络,减少 Wi‑Fi 抖动与丢包。
- 防火墙放行必要端口,保证局域网发现与播放稳定:
- TCP:8096(HTTP)、8920(HTTPS)
- UDP:7359(发现)、1900(SSDP)
命令示例:
sudo firewall-cmd --permanent --zone=public --add-port=8096/tcp
sudo firewall-cmd --permanent --zone=public --add-port=8920/tcp
sudo firewall-cmd --permanent --zone=public --add-port=7359/udp
sudo firewall-cmd --permanent --zone=public --add-port=1900/udp
sudo firewall-cmd --reload
- 建议将媒体与缓存目录置于 SSD/NVMe,显著提升首帧加载与转码流畅度。
二 硬件加速与转码策略
- Intel Quick Sync Video(QSV)优先:在宿主机安装 Intel 媒体驱动,Jellyfin 控制台选择 硬件加速:Intel Quick Sync(QSV),并勾选“启用硬件解码”。
- Docker 部署要点:映射 /dev/dri 设备,确保容器对核显的访问权限;若使用官方镜像,注意其通常不含 iHD 驱动,可选择集成了驱动的社区镜像(如 nyanmisaka/jellyfin)以简化部署。
- 验证驱动与解码能力:在容器内执行 vainfo 或 /usr/lib/jellyfin-ffmpeg/vainfo,确认 iHD 驱动加载与解码条目(如 H.264/HEVC/VP9/AV1 的支持情况)。
- 编码策略:优先 直连/播放原画(客户端支持时),减少转码;对不兼容的终端再启用转码,并优先使用 硬件编码 降低 CPU 占用。
- 画质与兼容性:在播放设置中启用 色调映射(HDR→SDR)与 字幕烧录(需要时),避免客户端不支持导致的黑屏或样式错乱。
三 缓存与内存优化
- 服务端缓存:适度提高 CacheSize(对象缓存项数),可加快目录/图片/元数据访问;内存紧张时下调,避免 swap。
- 转码缓存:将 转码缓存目录 放在 SSD 并确保剩余空间充足(建议 >20GB),减少转码卡顿与反复重建。
- 内存与并发:通过 systemd 设置 MemoryMax/MemoryMin 做“护栏”;结合 MaxConcurrentSessions 控制并发转码数量,避免内存与带宽被占满。
- 定期维护:清理过期缩略图/转码文件,监控 CPU/内存/磁盘 I/O,在高峰期前后做容量与负载评估。
四 存储与媒体库优化
- 编码与码率:尽量使用 高效编码(如 H.265/HEVC) 与合适的码率,降低带宽与存储占用,提升远程播放成功率。
- 预加载与预转码:对热门片源启用 预加载/预转码(如计划任务在闲时转码常用清晰度),减少首播等待。
- 刮削与元数据:合理配置刮削插件与频率,避免频繁抓取造成 I/O 抖动与界面卡顿。
- 大规模库:若媒体体量巨大,考虑 分布式/对象存储(如 S3) 挂载与分层存储,结合 CDN 或近端边缘缓存优化远程访问体验。
五 快速检查与常见瓶颈
- 播放器端:优先选择 Direct Play/原画;必要时在客户端启用 硬件解码 与合适的 缓冲策略。
- 服务端验证:
- 控制台检查 硬件加速 是否生效、解码器列表是否覆盖你的片源格式;
- 容器内执行 vainfo 确认驱动与解码支持;
- 观察 CPU/内存/磁盘 使用率,确认转码是否落在 iGPU 上。
- 网络与端口:确认 8096/8920/TCP 与 7359/1900/UDP 已放行,局域网设备可发现且播放无卡顿。
- 快速优化组合(示例):
- 宿主机直装 Jellyfin:安装 Intel 媒体驱动 → 控制台启用 QSV → 将缓存目录迁移至 SSD → 适度提高 CacheSize 并设置 MaxConcurrentSessions;
- Docker:映射 /dev/dri → 使用带驱动的镜像(如 nyanmisaka/jellyfin)→ 控制台启用 QSV → 放行防火墙端口 → SSD 存放转码缓存。