From c11e85d8be09c21b3a66b31d0882b0bb49630f9b Mon Sep 17 00:00:00 2001 From: Gmer4Lfe Date: Sat, 23 May 2026 14:24:41 -0400 Subject: [PATCH] Show full GPU Extra Parameters string everywhere it appears README-Transcoding now has a dedicated REQUIRED EXTRA PARAMETERS section with both GPU and non-GPU variants and the Google warning up front. Manual-Transcoding: two troubleshooting sections that showed mount-only now show both GPU and non-GPU full strings. NVIDIA section quote style fixed (--gpus "device=UUID" consistently). --- Transcodes/Manual-Transcoding.md | 19 +++++++++++-------- Transcodes/README-Transcoding.md | 31 +++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/Transcodes/Manual-Transcoding.md b/Transcodes/Manual-Transcoding.md index 29d754f..6af404a 100644 --- a/Transcodes/Manual-Transcoding.md +++ b/Transcodes/Manual-Transcoding.md @@ -422,7 +422,10 @@ docker inspect Emby | grep Propagation # Expected: "Propagation": "shared" # Wrong: "Propagation": "rprivate" # -# Fix: Update Emby Extra Parameters, restart Emby: +# Fix: Update Emby Extra Parameters, restart Emby. +# GPU containers (full string): +# --gpus "device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1" --pids-limit=0 --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared +# Non-GPU (mount only): # --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared # Remove any standard path mapping for the transcode directory. @@ -499,10 +502,11 @@ leave the container in a broken state where Emby refuses to start at all. # Cause: dirty shutdown left the bind mount in a state Docker can't recover. # # Recovery: -# 1. Remove the --mount line from Emby Extra Parameters in unRAID Docker UI +# 1. Remove the entire Extra Parameters line from Emby in unRAID Docker UI # 2. Start Emby and wait for it to fully load (check the WebUI is responsive) -# 3. Add the --mount line back to Extra Parameters: -# --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared +# 3. Add the full Extra Parameters line back: +# GPU: --gpus "device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1" --pids-limit=0 --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared +# Non-GPU: --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared # 4. Save changes and restart Emby # # The container starts cleanly without the mount, which clears the broken state. @@ -598,16 +602,15 @@ interferes with the mount namespace initialization that `bind-propagation=shared In the unRAID Docker template for Emby: -1. **Extra Parameters** — remove `--runtime=nvidia`, add `--gpus` with the GPU UUID: +1. **Extra Parameters** — remove `--runtime=nvidia`, replace with the full line: ``` - --gpus device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1 --pids-limit=0 \ - --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared + --gpus "device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1" --pids-limit=0 --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared ``` 2. **Variables** — remove the `NVIDIA_VISIBLE_DEVICES` variable entirely. The `--gpus` flag handles GPU assignment without the env var. -`--gpus device=UUID` uses Docker's native GPU device flag (default runtime) rather than +`--gpus "device=UUID"` uses Docker's native GPU device flag (default runtime) rather than the full NVIDIA container runtime setup. The container still gets GPU access; it just skips the device mount phase that conflicts with `bind-propagation=shared`. diff --git a/Transcodes/README-Transcoding.md b/Transcodes/README-Transcoding.md index 437f5a6..bd8eef0 100644 --- a/Transcodes/README-Transcoding.md +++ b/Transcodes/README-Transcoding.md @@ -19,6 +19,37 @@ back to RAM. --- +## ━━━ REQUIRED EXTRA PARAMETERS ━━━ + +> **Stop. Set this before starting Emby or Jellyfin. If you Google how to add GPU +> access to a Docker container on unRAID you will find the wrong answer.** Every +> forum post and guide shows `--runtime=nvidia` + `NVIDIA_VISIBLE_DEVICES`. That +> method conflicts with `bind-propagation=shared` on unRAID 7.2.5+ and breaks on +> container rebuilds. Use `--gpus` instead. + +In the unRAID Docker template, open **Advanced View** and paste the following into +the **Extra Parameters** field. Do not use the path mapping UI for the transcode +directory — it does not support `bind-propagation`. + +**GPU-accelerated (Emby, Jellyfin with NVENC/NVDEC) — use this:** +``` +--gpus "device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1" --pids-limit=0 --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared +``` + +**Non-GPU — use this:** +``` +--mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared +``` + +In Emby and Jellyfin's transcoding settings, set the transcode temp path to `/ext-ram-transcode`. + +Find your GPU UUID: `nvidia-smi -L` +HOST1 GPU UUID (Quadro P2000): `GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1` + +**→ Full explanation: [Manual-Transcoding.md](Manual-Transcoding.md)** + +--- + ## ━━━ THE PROBLEM THAT BUILT THIS ━━━ **Three Storage Options, None Perfect on Their Own**