Note

Docker 部署 Jellyfin

# 通过 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的片子在播放时会报错,提示没有合适的容器,最终无法播放。

0
0
...
...
...
Avatar