发布于 

NAS从入门到Boom② —— 安装Jellyfin并配置硬解

前言

安装完Portainer以后,则是安装媒体服务器,这里我选择了开源、免费的Jellyfin,而安装方式则采用简单方便的docker-compose

如何在Portainer中使用docker-compose

访问Portainer后台,点击local

image-20230227101834770
image-20230227101834770

点击左侧的Stacks

image-20230227101907477
image-20230227101907477

点击Add stack

image-20230227101958786
image-20230227101958786

如图所示

image-20230227102126435
image-20230227102126435

最后点击底部的Deploy the stack即可部署容器

(NVIDIA专属) 配置nvidia-docker-toolkit

对于NVIDIA GPU,我们需要安装一点小小的软件包才能使它在docker容器里工作

参照:Installation Guide — NVIDIA Cloud Native Technologies documentation

我们直接使用官方的指令:

1
2
3
4
5
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& 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/$distribution/libnvidia-container.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

1
2
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

配置docker-compose

话不多说,直接上配置文件:

使用NVENC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: "3"
services:
jellyfin:
image: nyanmisaka/jellyfin:latest # 使用中国特供版镜像,兼容性更好
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- JELLYFIN_PublishedServerUrl=192.168.1.3 # 这里是你Jellyfin的地址
- NVIDIA_DRIVER_CAPABILITIES=all # NVIDIA专属配置项
- NVIDIA_VISIBLE_DEVICES=all # NVIDIA专属配置项
volumes: # volumes按需配置
- /path_to_your_config:/config
- /path_to_your_tvshows:/data/tvshows
- /path_to_your_movies:/data/movies
- /path_to_your_animes:/data/animes
ports:
- 8096:8096 # http访问端口
- 8920:8920 # https访问端口
- 7359:7359/udp
- 1900:1900/udp
network_mode: bridge
deploy: # 使用NVIDIA GPU的这样设置
resources:
reservations:
devices:
- capabilities: [gpu]
restart: unless-stopped

使用Video Acceleration API (VAAPI)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "3"
services:
jellyfin:
image: nyanmisaka/jellyfin:latest # 使用中国特供版镜像,兼容性更好
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- JELLYFIN_PublishedServerUrl=192.168.1.3 # 这里是你Jellyfin的地址
volumes: # volumes按需配置
- /path_to_your_config:/config
- /path_to_your_tvshows:/data/tvshows
- /path_to_your_movies:/data/movies
- /path_to_your_animes:/data/animes
ports:
- 8096:8096 # http访问端口
- 8920:8920 # https访问端口
- 7359:7359/udp
- 1900:1900/udp
network_mode: bridge
devices:
- /dev/dri:/dev/dri
restart: unless-stopped

配置完成后,如果你的显卡没有问题,docker容器应该很快会部署完成

没有Portainer?

没有Portainer?不喜欢docker-compose?没关系,本部分将使用传统docker-cli部署Jellyfin

相关条目注释请看上一段

使用NVENC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
docker run -d \
--name=jellyfin \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e JELLYFIN_PublishedServerUrl=192.168.0.5 \
-e NVIDIA_DRIVER_CAPABILITIES=all \
-e NVIDIA_VISIBLE_DEVICES=all \
--gpus all \
-p 8096:8096 \
-p 8920:8920 \
-p 7359:7359/udp \
-p 1900:1900/udp \
-v /path/to/library:/config \
-v /path/to/tvseries:/data/tvshows \
-v /path/to/movies:/data/movies \
--restart unless-stopped \
nyanmisaka/jellyfin:latest

使用Video Acceleration API (VAAPI)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker run -d \
--device=/dev/dri:/dev/dri \
--name=jellyfin \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e JELLYFIN_PublishedServerUrl=192.168.0.5 \
-p 8096:8096 \
-p 8920:8920 \
-p 7359:7359/udp \
-p 1900:1900/udp \
-v /path/to/library:/config \
-v /path/to/tvseries:/data/tvshows \
-v /path/to/movies:/data/movies \
--restart unless-stopped \
nyanmisaka/jellyfin:latest

配置Jellyfin

登录Jellyfin,语言、地区选中文(这里我已经配置过所以不能再演示了),然后点击左上角的“三条杠”,再点击控制台,如图所示

image-20230227100358116
image-20230227100358116

然后点击播放,如图所示

image-20230227100529209
image-20230227100529209

如果你是NVIDIA GPU,按如图所示配置就可以了

image-20230227100622041
image-20230227100622041

注:这里硬件解码格式建议和你GPU支持解码的格式相同,N卡可以参考此链接:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new

如果你是Intel核显或者是想使用VAAPI,则按以下配置

image-20230227100853142
image-20230227100853142

效果

配置完成后保存,我们打开一个4K HDR视频看看效果

image-20230227101511721
image-20230227101511721

可以看到视频可以较为流畅的播放(如果使用T400或者更好的显卡,转码帧率会更高)