# 通过 Docker 安装#
docker run -d \
--name jellyfin \
--add-host=api.themoviedb.org:13.225.174.30 \
--add-host=www.themoviedb.org:54.192.22.105 \
--add-host=api.themoviedb.org:13.35.8.65 \
--add-host=api.themoviedb.org:13.224.161.90 \
--add-host=api.themoviedb.org:13.35.8.93 \
--add-host=api.themoviedb.org:13.35.8.6 \
--add-host=api.themoviedb.org:13.35.8.54 \
--add-host=image.tmdb.org:138.199.37.230 \
--add-host=image.tmdb.org:108.138.246.49 \
--add-host=image.tmdb.org:13.227.73.57 \
--add-host=api.thetvdb.org:13.225.89.239 \
--add-host=api.thetvdb.org:192.241.234.54 \
--volume /home/soft/jellyfin/config:/config \
--volume /home/media/video:/media \
--restart=unless-stopped \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
--device /dev/dri/card0:/dev/dri/card0 \
-p 8096:8096 \
-e TZ=Asia/Shanghai -e PUID=0 -e PGID=0 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
nyanmisaka/jellyfin:latest
--name jellyfin:容器名称。
--add-host:配置容器内的host解析,将api.themoviedb.org和image.tmdb.org等域名解析到指定IP。因为Jellyfin需要访问这些站点的API来获取元数据,但容器内默认DNS可能无法解析,所以需要额外配置这些域名解析。
--volume: 将宿主机的目录挂载到容器内,用于持久化保存Jellyfin的配置数据和媒体库数据。
--restart=unless-stopped: 除非容器被手动停止,否则总是重启容器。
--device: 将宿主机的GPU设备文件挂载到容器内,用于硬件解码。
-p 8096:8096: 端口映射,将宿主机8096端口与容器内8096端口建立映射。
-e TZ和-e DISPLAY: 设置时区和显示环境变量。
-v /tmp/.X11-unix:/tmp/.X11-unix :挂载X11 socket目录,用于图形应用程序访问X server显示。
nyanmisaka/jellyfin:latest : 使用名为nyanmisaka/jellyfin的Docker镜像,标签为latest。
# 虚拟机中配置#
进入虚拟机
docker exec -it jellyfin /bin/bash
## apt 换源#
具体查看之前 换源 笔记
接着安装
apt-get install vim
apt-get install -my wget gnupg
可能会出现错误
E: The repository 'https://mirrors.ustc.edu.cn/ubuntu focal-backports InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: GPG error: https://mirrors.ustc.edu.cn/ubuntu focal-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B4FE6ACC0B21F32 NO_PUBKEY 871920D1991BC93C
解决办法:
执行下面命令,修改后面的那串数字
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C
## 安装中文字体#
apt install fonts-noto-cjk-extra
## 检查显卡直通#
ls /dev/dri/
出现 renderD128 和 card0 说明成功
## 安装驱动#
apt install -y intel-media-va-driver-non-free vainfo
接着输入
vainfo
如果出现类似
root@61f034a94ef0:/# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_6
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Bay Trail - 2.4.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
说明驱动可以正常初始化并支持多种编码
虽然出现了
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
这主要会对 vaapi 软件的操作产生影响,不影响 vaapi 硬件加速的效果。
vaapi 在纯粹的编码和解码场景中,是不需要连接显示服务器的。
只要驱动成功初始化,加速编解码的效果不会受影响。
如果出现这种错误
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
则需要安装 i965 VA-API 驱动
apt install -y libva2 i965-va-driver
# 页面配置#
此时打开服务器 8096 端口,就可以打开 Jellyfin 页面
内容类型: 电影内容选 “电影”,电视剧选 “节目”,
显示名称: 自定义:
添加媒体库: 点击 “文件夹” 旁边的加号,分别添加电影或电视剧内容所在的文件夹
首选语言 选择 “Chinese”,国家 / 地区 选择 “People's Republic of China”
元数据下载器: 只保留 “TheMovieDb”
图片获取程序: 只保留 “TheMovieDb”,
没提到的,则根据情况自行选择;
全部设置完点 “确定”,之后系统便会自动生成电影和电视剧的海报列表,
完成的速度和你使用的网络环境相关。
## 网络设置#
打开 “控的制台”,在 “高级” 里选择 “联网”;
设置 “监听的本地网络地址”,设为 Jellyfn 服务器所在的网址,
设置 “LAN 网络”,设置为你的局域网地址,比如: 192.168.1.0/255.255.255.0,
如果有多个局域网网段,则用 “逗号” 隔开;
最后点” 确定 “完成网络配置.
## 视频硬解设置#
打开” 控制台 “,在” 服务器 “里选择” 播放 “,
硬件加速: 下拉选择”Video Acceleartion APIVAAP)“或者” ntel QuickSync (QSV“,
不是太老的 CPU / 显卡,建议选 QsV;
启用硬件解码: 根据显卡支持的解码进行选择,Intel 3455 及以上的 CPU,
即 UHD500 及以上的显卡可以全选;
首选系统原生 DXVA 或 VA-API 硬件解码器:不选;
硬件编码选项: 只选择 “启用硬件编码”,“启用 VPP 色调映射 ,没有提到的均不选
最后根据实际情况选中” 允许实时提取字幕 “和” 限制转码速度 “:
没有提到的选择项均不选,其他参数均使用默认值,
最后确定完成设置。
注意,千万不要选择” 启用色调映射 “,这是个坑,选中后,
很多 HEVC/HDR 的片子在播放时会报错,提示没有合适的容器,最终无法播放。