これは、Plex ユーザーが常に間違える Docker 設定です

in tech

ハードウェア コード変換は、Plex を利用しているメディア サーバーのお気に入りの機能の 1 つです。これにより、映画のコピーを 1 つ保存し、それを必要なコンテナまたは形式にトランスコードするだけで済みます。ただし、Docker で適切に動作させるまでには時間がかかりました。

ハードウェア コード変換により Plex サーバーが強力になります

ただし、ハードウェアの最も強力なトランスコーディング エンジンを使用するには Plex Pass が必要です

Intel Core i5 Gen 14 CPUの前面。 クレジット: Hannah Stryker / How-To Geek

トランスコーディングを行わずに標準の Plex サーバーを実行するだけ (またはプロセッサ上でトランスコーディングのみ) を計画している場合、その設定を破るのは困難です。ただし、ハードウェアのトランスコーディングを利用したい場合は、少し複雑になります。

ハードウェア トランスコーディングはあらゆるメディア サーバーにとって秘密のソースですが、使用するにはアクティブな Plex Pass メンバーシップが必要です。これにより、1080p の映画を、悪いネットワーク上で 720p にダウンサンプリングできるようになります。または、映画の 4K HDR コピーを用意し、外出先で 1080p テレビや携帯電話にストリーミングすることもできます。

ハードウェア トランスコーディングを使用すると、Plex は、CPU にブルート フォースでトランスコードを実行させるのではなく、システムに搭載されているプロセッサやグラフィック カードのネイティブ メディア エンジンを利用できます。

プロセッサの通常の CPU コアはバターナイフのようなものだと考えてください。非常に多用途ですが、正確なタスクを実行するには時間がかかる可能性があります。 CPU または GPU のメディア エンコード エンジンはフィレット ナイフのようなもので、正確で正確ですが、実際に役立つのはほんの一握りです。

したがって、Plex を適切にセットアップするには、システムのハードウェア コード変換機能を使用するように Plex サーバーをセットアップすることが重要です。

GPU を Docker に渡すと、ほとんどの Plex セットアップが中断されます。

デバイスが正しくマッピングされていない場合、Plex はハードウェア トランスコーディングを使用できません

Docker で GPU を Plex に渡すことは、設定によっては非常に簡単なこともあれば、驚くほど面倒なこともあります。私のオリジナルの Plex サーバーは非常に扱いやすく、Plex 専用の GPU を持っていたため、それを Docker にパススルーすることができ、問題なく動作しました。

次に、Proxmox を実行しているシステムに移行し、Plex に iGPU を使用したいと考えました。 iGPU をホスト OS (Proxmox) から仮想マシン (Ubuntu) に渡し、その後 Docker コンテナに渡す必要があったため、これをセットアップするのはかなり困難でした。現在、私は Plex に使用する iGPU を備えた NAS で Plex を実行していますが、セットアップは非常に簡単で簡単でした。

ここで考えられるすべての設定を説明することはできませんが、VM 内にあるのかホスト システム上にあるのかに関係なく、Docker 自体によって iGPU またはグラフィック カードが認識された後に何をすべきかを説明します。

NVIDIA GPU を使用している場合、Plex での使用は非常に簡単です。 Docker が (通常は NVIDIA Container Toolkit を介して) アクセスできることを確認し、次の 2 行を環境変数に追加します。

     environment:
          - NVIDIA_VISIBLE_DEVICES=all
          - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility

グラフィックス カードに Intel デバイスを使用するにはさらに数行かかりますが、それでも非常に簡単に実行できます。

   environment:
      - LIBVA_DRIVER_NAME=iHD
      - VAAPI_DEVICE=/dev/dri/renderD128
      - PLEX_HWTRANSCODE=1

    devices:
      - /dev/dri/card0:/dev/dri/card0
      - /dev/dri/renderD128:/dev/dri/renderD128

もちろん、これらの行を、Plex でマウントした他の環境変数またはデバイスと統合し、ボリュームが適切にマウントされていることを確認する必要があります。しかし、実際には、NVIDIA GPU または Intel iGPU を使用するために必要なのは上記の変数だけです。

Docker セットアップを実行しているホストによっては、手動で編集する必要さえない場合があります。たとえば、私の Ugreen NAS には、GPU パススルーを自動的に処理する新しい Docker コンテナーを作成するときにトグルがあり、うまく機能します。他のシステムも調べてみると同様の機能を提供していますが、実行しているコンテナに固有の環境変数を設定する必要がある場合があります。

Plex が実際に GPU を検出していることを常に確認してください

証拠はプリンの中にある

Plex 設定インターフェイスには、インテル Arrowlake トランスコーダーを使用したトランスコーディング オプションが表示されます。

トランスコーディング デバイスを Plex に渡すのは素晴らしいことですが、それは Plex が実際にそれを使用していることを意味するわけではありません。 iGPU を VM 経由で Plex に渡していたとき、Plex がそれを適切に認識して使用できるようにするには、数回の試行が必要でした。そのため、ハードウェアトランスコーディングを使用して新しい Plex サーバーをセットアップするときは、必ず、ジョブが完了したと判断する前に、それが機能していることを確認します。

トランスコーディング時にストリームを開始して (hw) を探すことも可能ですが、通常は[設定]→[トランスコーダ]→[ハードウェア トランスコーディング デバイス]の順に進みます。これにより、トランスコーディング用に使用している特定のデバイスが表示されるはずですが、それが空であるか、ドロップダウンに他に何もなく「自動」と表示されている場合は、パススルーが適切に機能していない可能性が高くなります。

私は通常、トランスコーディング設定を確認することから始めますが、その後、トランスコードされたストリームを実行して (hw) タグを探し、専用のハードウェアを使用して適切にトランスコーディングされていることを確認することで二重に検証することを常に好みます。

  • KAMURI Hyper H2 ミニ PC。

    ブランド

    カムリ

    CPU

    i5-14450HX

    KAMRUI Hyper H2 Mini PC は、Intel Core i5-14450HX 10 コア 16 スレッド プロセッサーと 16GB DDR4 RAM を搭載しています。付属の 512GB NVMe SSD には Windows 11 がプリインストールされているため、システムは箱から出してすぐに使用できます。


  • プレックスのロゴ

    ブランド

    プレックス

    無料トライアル

    無料版あり

    Plex を使用すると、どんなサービスでも、劇場公開作品でも、聞いたことのある映画やテレビ番組を 1 つの統合されたウォッチリストに保存できます。他のすべてのストリーミング サービスでウォッチリストを行き来するのをやめて、代わりにすべてを Plex に追加できるようになりました。



ハードウェアのトランスコーディングが機能しない場合、CPU がすべてのトランスコーディングの責任を負うことになります。

ハードウェアのトランスコーディングは心配する必要のないことのように思えるかもしれませんが、他のタスクのためにプロセッサから貴重なリソースを奪う可能性があります。

Plex を実行している強力なシステムがある場合は、CPU でトランスコーディングが発生していることに気付かない可能性があります。ただし、Intel N95 または N100 ミニ PC などの低電力デバイスを使用している場合、CPU でのトランスコーディングによりシステムが停止し、プロセス内の他のすべての速度が低下する可能性があります。

したがって、Plex サーバーがハードウェア トランスコーディングを適切に処理していることを確認してください。プロセッサーはあなたに感謝します。

関連記事

前の投稿
Amazon Echo Show 11が現在50ドルオフ
次の投稿
今週人々が間違っていること: 聖パトリックの日の神話