温馨提示×

ubuntu jellyfin硬件加速如何开启

小樊
36
2025-12-07 00:35:59
栏目: 智能运维

Ubuntu 下 Jellyfin 硬件加速开启指南

一 前置准备

  • 确认 GPU 与驱动:
    • Intel 核显:安装工具与固件并启用 GuC/HuC,有助于 Quick Sync Video 解码/编码与性能稳定。
      • 安装工具:sudo apt install -y intel-gpu-tools
      • 启用 GuC/HuC:
        • echo 'options i915 enable_guc=2' | sudo tee /etc/modprobe.d/i915.conf
        • sudo update-initramfs -u && sudo update-grub && sudo reboot
      • 验证:sudo dmesg | grep i915cat /sys/kernel/debug/dri/0/gt/uc/{guc,huc}_info 不应出现 FAIL/ERROR。
    • NVIDIA 独显:安装专有驱动与 NVIDIA Container Toolkit(Docker 场景)。
      • 驱动:sudo apt install -y nvidia-driver-<version>
      • 工具包:sudo apt install -y nvidia-container-toolkit
    • 通用:确保系统已安装 FFmpeg(Jellyfin 依赖其进行硬件编解码)。

二 宿主机安装与基础配置

  • APT 安装 Jellyfin(宿主机直接运行):
    • 添加仓库与密钥、更新索引并安装:
      • sudo mkdir -p /etc/apt/keyrings
      • curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
      • echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/jellyfin.gpg] https://repo.jellyfin.org/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/jellyfin.sources
      • sudo apt update && sudo apt install -y jellyfin
    • 启动与开机自启:sudo systemctl start jellyfin && sudo systemctl enable jellyfin
    • 访问控制台:浏览器打开 http://<服务器IP>:8096

三 在 Jellyfin 中启用硬件加速

  • Web 管理端路径:控制台 → 播放 → 视频,进行如下设置:
    • 启用硬件加速:选择 VAAPI(Intel/AMD 常用)或 NVDEC(NVIDIA 常用)。
    • 解码选项:勾选与你的 GPU 匹配的 H.264/HEVC/AV1 硬件解码 项。
    • 保存后重启 Jellyfin 服务:sudo systemctl restart jellyfin
  • 验证要点:播放器统计信息应显示 Codec: H/W(而非 H/W, FFMPEG 的软解路径),且 CPU 占用显著下降。

四 Docker 部署的额外配置

  • Intel/AMD(VAAPI/DRI):映射 /dev/dri 设备到容器,示例 compose:
    • version: "3"
    • services:
      • jellyfin:
        • image: jellyfin/jellyfin:latest
        • container_name: jellyfin
        • network_mode: "host"
        • volumes:
          • - /dev/dri:/dev/dri
          • - /path/to/config:/config
          • - /path/to/cache:/cache
          • - /path/to/media:/media
  • NVIDIA(NVDEC/NVENC):在宿主机安装 nvidia-container-toolkit 后,运行容器时添加 –gpus all
    • docker run -d --name jellyfin --net mybridge -p 8096:8096 \
      -v /home/ubuntu/mount0/docker/jellyfin/config:/config \
      -v /home/ubuntu/mount0/docker/jellyfin/cache:/cache \
      -v /home/ubuntu/mount0:/media \
      --restart=unless-stopped --gpus all jellyfin/jellyfin
  • 说明:Docker 场景必须正确映射设备或启用 GPU 访问,Jellyfin 才能调用宿主 GPU 进行硬解/硬编。

五 验证与常见问题

  • Intel 场景验证:播放视频时运行 sudo intel_gpu_top,若 Video/VideoEnhance 引擎占用上升,说明 Quick Sync 正在工作。
  • NVIDIA 场景验证:运行 watch -n 1 nvidia-smi,播放时 GPU-UtilNVDEC/NVENC 会话应出现并增长。
  • 常见问题与要点:
    • 未生效时,优先检查:驱动是否正确、设备是否映射(/dev/dri 或 --gpus all)、Jellyfin 中是否勾选了对应 硬件解码、浏览器/客户端是否支持所选编解码与色度采样。
    • 编码能力差异:部分低端/移动版 NVIDIA 显卡(如 GT 1030、MX450)解码/编码能力受限,建议选择支持 HEVC/AV1 硬解/硬编的型号(如 GeForce GTX 1660 及以上)。
    • 虚拟机/直通:若使用 ESXi 等虚拟化,需将 GPU 直通给 Ubuntu 虚机,并视情况设置 hypervisor.cpuid.v0=FALSE 等参数,确保驱动正常加载与识别。

0