NAS从入门到Boom② —— 安装Jellyfin并配置硬解
前言
安装完Portainer
以后,则是安装媒体服务器,这里我选择了开源、免费的Jellyfin
,而安装方式则采用简单方便的docker-compose
。
如何在Portainer中使用docker-compose
访问Portainer后台,点击local
点击左侧的Stacks
点击Add stack
如图所示
最后点击底部的Deploy the stack
即可部署容器
对于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 - NVIDIA_DRIVER_CAPABILITIES=all - NVIDIA_VISIBLE_DEVICES=all 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 - 8920:8920 - 7359:7359/udp - 1900:1900/udp network_mode: bridge deploy: 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 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 - 8920:8920 - 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
,语言、地区选中文(这里我已经配置过所以不能再演示了),然后点击左上角的“三条杠”,再点击控制台
,如图所示
然后点击播放
,如图所示
如果你是NVIDIA GPU,按如图所示配置就可以了
注:这里硬件解码格式建议和你GPU支持解码的格式相同,N卡可以参考此链接:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
如果你是Intel核显或者是想使用VAAPI,则按以下配置
效果
配置完成后保存,我们打开一个4K HDR视频看看效果
可以看到视频可以较为流畅的播放(如果使用T400或者更好的显卡,转码帧率会更高)