Jellyfinとは?

Jellyfinは、無料で利用できるオープンソースのメディアサーバーです。映画、番組、音楽、写真をブラウザー、スマートフォン、テレビ、その他のデバイスにストリーミングでき、動画をリアルタイムでトランスコードすることもできます。プロジェクトでは公式イメージ jellyfin/jellyfin が提供されており、ghcr.io/jellyfin/jellyfin としても公開されています。LinuxServer.ioプロジェクトでは、独自のフォルダーと変数を使用する別のイメージ lscr.io/linuxserver/jellyfin が提供されています。

ツールの説明

このツールは、プロジェクトのインストールガイドに基づいてJellyfin用の compose.yaml を作成します。イメージとタグ、ポートとネットワーク、ユーザー、設定とcache用のフォルダー、さらに読み取り専用にできる任意の数のメディアフォルダーを選択できます。公式イメージでは、カスタムフォントとフォールバックフォント用のフォルダーもマウントできます。グラフィックカードについては、Jellyfinのドキュメントで説明されている設定を追加します。IntelおよびAMDでは /dev/dri とrenderグループ、NVIDIAではNVIDIA runtimeとGPU予約を追加します。user の代わりに PUIDPGIDTZ を使用するLinuxServer.ioイメージを選択すると、ファイルの内容も変更されます。すべての処理はブラウザー上で完了します。

機能

  • Docker HubまたはGitHub Container Registryの公式イメージ、あるいはLinuxServer.ioのイメージ(任意のタグに対応)
  • ポート8096および7359/udp、任意のHTTPSポート8920、バインドアドレスを使用するbridgeモード、またはDLNAで必要なhostモード
  • サーバーを検出するクライアント向けの公開サーバーURL
  • 公式イメージ用の uid:gid 形式のユーザー、またはLinuxServer.io用の PUIDPGID、タイムゾーン
  • ホスト上または名前付きDocker volume内の設定とcache(必要な宣言は自動的に追加)
  • 複数のメディアフォルダー。それぞれコンテナ内のパスと、読み取り専用でマウントするオプションを指定可能
  • トランスコード中に焼き込まれる字幕用のカスタムフォントとフォールバックフォント
  • IntelおよびAMD向けのVA-APIまたはQSV、NVIDIA向けのNVENCによるハードウェアアクセラレーション
  • その他の任意の環境変数、ファイルの内容を説明するコメント、compose.yaml としてのダウンロード

デフォルト設定では、ファイルと同じ場所にフォルダーを配置した、Jellyfinのドキュメントにある例が作成されます。

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    ports:
      - "8096:8096"
      - "7359:7359/udp"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media
    restart: unless-stopped

NVIDIAのハードウェアアクセラレーションを選択すると、runtimeとGPU予約が追加されます。

runtime: nvidia
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: all
          capabilities:
            - gpu

ヒント

  • 結果を compose.yaml として保存し、docker compose up -d で起動します。その後 http://localhost:8096 を開き、コンテナ内のパスを使用してメディアフォルダーをライブラリとして追加します
  • コンテナでのJellyfinの実行がサポートされているのはLinuxのみです。WindowsとmacOSでは、ハードウェアアクセラレーションとライブラリのスキャンがコンテナ内で正常に動作しないことが知られているため、Jellyfinをネイティブにインストールしてください
  • getent group render | cut -d: -f3 を使用して、ホスト上のrenderグループのIDを確認します。一部のシステムでは、グループ名が video または input になっています
  • NVIDIAの場合は、まずホストにNVIDIAドライバーとNVIDIA Container Toolkitをインストールします
  • コンテナでハードウェアアクセラレーションを有効にした後、Jellyfinのダッシュボードで「再生」→「トランスコード」に移動し、機能を有効にします
  • DLNAはプラグインであり、hostモードが必要です。検出に使用する1900/udpポートのブロードキャストはbridgeを越えられないためです
  • 公式プロジェクトとLinuxServer.ioのイメージでは、データの保存場所が異なるため、既存のフォルダーで一方をもう一方に置き換えることはできません
  • Jellyfinが変更する必要のないメディアは、読み取り専用でマウントしてください