英伟达¶ Nvidia 硬件加速用户需要在其主机上安装 Nvidia 提供的容器运行时,说明可在此处找到:https://github.com/NVIDIA/nvidia-container-toolkit 我们会自动添加必要的环境变量,以利用主机上 GPU 上可用的所有功能。在主机上安装 nvidia-container-toolkit 后,您需要使用 nvidia 容器运行时重新/创建 docker 容器--runtime=nvidia并添加环境变量-e NVIDIA_VISIBLE_DEVICES=all(也可以设置为特定 gpu 的 UUID,可通过运行发现nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv)。NVIDIA 会自动将主机上的 GPU 和驱动程序安装到容器中。已经安装好了nvidia-container-toolkit . Jellyfin开启硬件加速,接下来的步骤
要在 Jellyfin 中开启硬件加速并使用 NVIDIA GPU,请按照以下步骤操作:
1. 确保已安装 nvidia-container-toolkit
你已经确认安装了 nvidia-container-toolkit,这是使用 NVIDIA GPU 进行硬件加速的前提。
系统要求
Windows 10 或 Windows Server 2019/2022:64 位版本。
WSL 2(Windows Subsystem for Linux 2):NVIDIA Container Toolkit 主要在 Linux 环境中运行,因此需要通过 WSL 2 使用。
NVIDIA GPU 驱动:确保已安装支持 CUDA 的 NVIDIA 显卡驱动。
Docker Desktop:需安装并配置 Docker Desktop,并启用 WSL 2 后端。
安装步骤
注意: 需要翻墙连接外网
启用 WSL 2:
打开 PowerShell 作为管理员,运行以下命令:
powershell
wsl --install
如果已安装 WSL 1,升级到 WSL 2:
powershell
wsl --set-version <发行版名称> 2
安装 Docker Desktop:
下载并安装 Docker Desktop。
安装时选择使用 WSL 2 后端。
安装 NVIDIA 驱动:
从 NVIDIA 官网 下载并安装适用于 Windows 的最新 GPU 驱动。
安装 NVIDIA Container Toolkit:
在 WSL 2 的 Linux 发行版中(如 Ubuntu),运行以下命令:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
验证安装:
在 WSL 2 中运行以下命令,确认 GPU 可用:
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
注意事项
NVIDIA Container Toolkit 主要在 Linux 环境中运行,Windows 上需通过 WSL 2 使用。
确保 WSL 2 和 Docker Desktop 配置正确。
2. 使用 NVIDIA 容器运行时启动 Jellyfin 容器
在启动 Jellyfin 容器时,需要使用 --runtime=nvidia 参数,并设置 NVIDIA_VISIBLE_DEVICES 环境变量。
bash
复制
docker run -d \
--name jellyfin \
--runtime=nvidia \
-e NVIDIA_VISIBLE_DEVICES=all \
-v /path/to/config:/config \
-v /path/to/media:/media \
-p 8096:8096 \
jellyfin/jellyfin:latest
--runtime=nvidia:指定使用 NVIDIA 容器运行时。
-e NVIDIA_VISIBLE_DEVICES=all:使容器可以访问主机上的所有 GPU。如果你只想使用特定的 GPU,可以将其设置为 GPU 的 UUID。
-v /path/to/config:/config:将 Jellyfin 的配置文件目录挂载到容器中。
-v /path/to/media:/media:将媒体文件目录挂载到容器中。
-p 8096:8096:将容器的 8096 端口映射到主机的 8096 端口。
3. 进入 Jellyfin 管理界面
启动容器后,打开浏览器并访问 http://localhost:8096,进入 Jellyfin 的管理界面。
4. 配置硬件加速
登录 Jellyfin 管理界面。
进入 Dashboard(仪表盘)。
选择 Playback(播放)选项卡。
在 Hardware Acceleration(硬件加速)部分,选择 NVIDIA NVENC 作为硬件加速选项。
保存设置。
5. 验证硬件加速是否生效
播放一个视频文件。
进入 Dashboard > Playback > Transcoding(转码)选项卡,查看是否使用了 GPU 进行转码。
6. 检查 GPU 使用情况
你可以通过 nvidia-smi 命令查看 GPU 的使用情况,确认 Jellyfin 是否正在使用 GPU 进行硬件加速。
bash
复制
nvidia-smi
如果一切正常,你应该会看到 Jellyfin 进程正在使用 GPU。
feelapple@DESKTOP-J30S84J:/mnt/c/Users/Administrator$ nvidia-smi
Fri Jan 17 14:14:49 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.57.02 Driver Version: 566.03 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3080 On | 00000000:07:00.0 On | N/A |
| 37% 25C P2 158W / 350W | 2705MiB / 12288MiB | 17% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 28 G /Xwayland N/A |
| 0 N/A N/A 28 G /Xwayland N/A |
| 0 N/A N/A 909 G /ffmpeg N/A |
+-----------------------------------------------------------------------------------------+