# 通過 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 的片子在播放時會報錯,提示沒有合適的容器,最終無法播放。