[BUG] Nvidia HW Transcoding Issues

オープン
#432 コメント 27 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
arch-linux, docker

調査の方向性

提供された Docker Compose サービス定義とコンテナログから始め、CDI 構成コマンドを issue #403 に記載された回避策と比較します。失敗の原因が NVIDIA ドライバー、コンテナランタイム、Docker、Plex、このコンテナのいずれにあるかを特定します。Plex が起動し、ライブラリを手動でリンクせずにハードウェアトランスコードが動作すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

work-in-progress
Is there an existing issue for this?
  • I have searched the existing issues
Current Behavior

I'm having issues with HW transcoding after updating all the packages on my Arch Linux host. This included the nvidia container runtime and updating the nvidia driver to version 580.xx.xx. Originally the Plex container failed to even start with the following error

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running prestart hook #0: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy'

I found this post on the Arch Linux forum about this exact issue which led me to switch to using CDI instead of legacy by running the following commands.

sudo nvidia-ctk runtime configure --runtime=docker
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
sudo nvidia-ctk config --in-place --set nvidia-container-runtime.mode=cdi && sudo systemctl restart docker

This fixed the issue for my frigate, jellyfin, and faster-whisper containers but for some reason the Plex container exhibits the same behavior as #403 where the, failed to load libcuda.so errors come up when Plex attempts to transcode. I am able to run nvidia-smi in the plex container and I receive the proper output.

I was finally able to get Plex to use HW transcoding by using the solution in https://github.com/linuxserver/docker-plex/issues/403#issuecomment-2466403210 which was to run for i in /usr/lib/lib*.so.1; do ln -s $i /usr/lib/plexmediaserver/lib/; done in the container.

That obviously isn't a super ideal solution so I wanted to bring the issue to your attention to see if there is something else that could be done to mitigate this issue. I'm really not sure where this is falling down whether it be the nvidia 580.xx driver, the nvidia container runtime, a docker update, upstream of this container in plex itself, or the linux server container itself.

Expected Behavior

The Plex container starts and hardware transcoding remains functional as it did before.

Steps To Reproduce
  1. Update Arch Linux with sudo pacman -Syyu
  2. Try to run the Plex container
Environment
- OS: Arch Linux
- How docker service was installed: sudo pacman -S docker
CPU architecture

x86-64

Docker creation
I used the following compose file:


services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    runtime: nvidia
    network_mode: host
    environment:
      - PUID=1001
      - PGID=985
      - VERSION=docker
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
    volumes:
      - /tank/appdata/plex:/config
      - /tank/media:/media
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
Container logs
[migrations] started
[migrations] no migrations found
───────────────────────────────────────

      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝

   Brought to you by linuxserver.io
───────────────────────────────────────

To support LSIO projects visit:
https://www.linuxserver.io/donate/

───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1001
User GID:    985
───────────────────────────────────────
Linuxserver.io version: 1.42.1.10060-4e8b05daf-ls278
Build-date: 2025-08-11T17:39:21+00:00
───────────────────────────────────────

**** Server already claimed ****
**** adding /dev/dri/renderD128 to video group root with id 0 ****
**** permissions for /dev/dri/card1 are good ****
Docker is used for versioning skip update check
[custom-init] No custom files found, skipping...
Starting Plex Media Server. . . (you can ignore the libusb_init error)
Connection to localhost (::1) 32400 port [tcp/*] succeeded!
[ls.io-init] done.
Critical: libusb_init failed
Dolby, Dolby Digital, Dolby Digital Plus, Dolby TrueHD and the double D symbol are trademarks of Dolby Laboratories.
Connection to 45.56.108.77 closed by remote host.
主要言語
Dockerfile
スター
1.4k
フォーク
228
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

linuxserver/docker-plex のほかの issue

linuxserver/docker-plex の issue をすべて見る

似ている issue

DevOps の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。