Jellyfin Docker 部署与 GPU 硬件解码
现在来讲解如何在 Linux 服务器上,使用 Docker 版的 Jellyfin/Emby 搭配 vGPU 来实现硬件解码,本文同样适用于N卡直通用户。关于文件访问,推荐使用 NFS 将 NAS 上的文件挂载到 GPU 虚拟机上。
本文以 Debian 11 系统作为示例,理论上也适用于 Ubuntu 系统,不同发行版的用户请根据实际情况适当微调相关命令。
配置环境
安装 Docker 环境,版本不要低于23,具体安装方法略
安装 NVIDIA Container Toolkit,这是一组用于支持 NVIDIA GPU 的 Docker 容器的工具集,一共包含4个组件,分别为:
NVIDIA Docker2:针对官方 Docker 引擎提供支持 NVIDIA GPU 的解决方案。
NVIDIA Container Runtime:基于 Docker 运行时的 NVIDIA GPU 加速解决方案。
NVIDIA device plugin for Kubernetes:支持在 Kubernetes 中使用标准名称分配 NVIDIA GPU。
NVIDIA GPU Operator:简化了在 Kubernetes 集群上部署、管理和维护 NVIDIA GPU 加速工作负载的过程。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 添加软件源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo 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' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装nvidia-container-toolkit
apt update
apt install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker
# 测试,如果能正常输出显卡信息则安装成功
docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
其他系统安装可以参考官方文档。
开始安装
使用下方的 docker-compose 文件启动 Jellyfin 容器(Emby 容器同样适用)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25version: '3.8'
services:
# Jellyfin: https://hub.docker.com/r/nyanmisaka/jellyfin
jellyfin:
image: nyanmisaka/jellyfin:latest
container_name: jellyfin
hostname: jellyfin
restart: always
environment:
- TZ=Asia/Shanghai
- NVIDIA_DRIVER_CAPABILITIES=all
- NVIDIA_VISIBLE_DEVICES=all
ports:
- 8096:8096
volumes:
- ./jellyfin/config:/config
- ./jellyfin/cache:/cache
- /mnt/media:/media
runtime: nvidia
deploy:
resources:
reservations:
devices:
- capabilities: [ gpu ]Jellyfin 初始化配置,略
进入控制台,选择“播放”菜单,参照GPU硬件编解码能力表,启用对应的硬件编解码选项

随便找个视频播放,验证是否生效,可以看到视频已经成功调用 GPU 解码,HDR 色调映射也没问题


最后,关于 Jellyfin 的硬件解码,实际上只需分配1-2GB显存即可满足要求。如果您使用的是黑群晖,并且不想额外启动虚拟机,或者是在物理机上搭建的黑群晖,您可以自行了解如何使群晖 Docker 使用 NVIDIA 显卡驱动。理论上,只需安装一个第三方的 NVIDIA 套件即可实现,但个人认为这可能会影响黑群晖的稳定性,因此我选择不使用这种方法。






