banner
小鱼

小鱼's Blog

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: コンテナ内のホスト解決を設定し、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ソケットディレクトリをマウントし、グラフィカルアプリケーションがXサーバーの表示にアクセスできるようにします。
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」のみを保持します。

言及されていないものは、状況に応じて自分で選択してください。

すべての設定が完了したら「確定」をクリックすると、システムが自動的に映画とテレビドラマのポスタ一覧を生成します。

完了の速度は、使用しているネットワーク環境に関連しています。

## ネットワーク設定#

「コントロールパネル」を開き、「詳細設定」で「ネットワーク」を選択します。

「リッスンするローカルネットワークアドレス」を Jellyfin サーバーの URL に設定します。

「LAN ネットワーク」をあなたのローカルネットワークアドレスに設定します。例えば: 192.168.1.0/255.255.255.0。

複数のローカルネットワークセグメントがある場合は、「カンマ」で区切ります。

最後に「確定」をクリックしてネットワーク設定を完了します。

## ビデオハードデコード設定#

「コントロールパネル」を開き、「サーバー」で「再生」を選択します。

ハードウェアアクセラレーション: ドロップダウンから「Video Acceleration API (VAAPI)」または「Intel QuickSync (QSV)」を選択します。

あまり古くない CPU / グラフィックカードの場合、QSV を選択することをお勧めします。

ハードウェアデコードを有効にする: グラフィックカードがサポートするデコードに応じて選択します。Intel 3455 以上の CPU、つまり UHD500 以上のグラフィックカードはすべて選択できます。

システムネイティブの DXVA または VA-API ハードウェアデコーダーを優先:選択しません。

ハードウェアエンコードオプション: 「ハードウェアエンコードを有効にする」と「VPP トーンマッピングを有効にする」のみを選択し、言及されていないものは選択しません。

最後に、実際の状況に応じて「リアルタイム字幕抽出を許可する」と「トランスコード速度を制限する」を選択します。

言及されていない選択肢はすべて選択せず、他のパラメーターはデフォルト値を使用します。

最後に設定を完了するために「確定」をクリックします。

注意: 「トーンマッピングを有効にする」を選択しないでください。これは罠です。選択すると、多くの HEVC/HDR の映像が再生中にエラーを報告し、適切なコンテナがないと表示され、最終的に再生できなくなります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。