Help Needed: Having issues with hardware transcoding in Linux

Server Version#: 1.19.4.2935
Player Version#: N/A - Same issue with all players

Good Morning,

Recently I am having some issues with hardware transcoding, something that worked well in the past. I am running PMS in Ubuntu with a P2000 and some Xeon CPUs.

The issue is that when hardware transcoding is enabled, players don’t play anything, the moment I turn it off they start. I have looked at the console, but I’m not seeing any errors.

I checked the drivers in Linux for the GPU, removed and reinstalled but have the same issue. Everything with Nvidia-smi seems to be in order.

I have attached the log file to see if anyone can help, if I have missed any details please let me know.

Regards,
Gavin

Plex Media Server Logs_2020-06-28_09-25-32.zip (5.5 MB)

Plex Media Server Logs_2020-06-28_11-36-09.zip (140.9 KB)

I cleared the log files, and replicated the issue.

It looks like it keep reloading FFMPEG over and over:

Jun 28, 2020 11:34:39.944 [0x7f5248ff9700] DEBUG - Audio Stream: 597297, Subtitle Stream: -1
Jun 28, 2020 11:34:40.013 [0x7f52497fa700] DEBUG - Scaled up video bitrate to 22066Kbps based on 1.500000x fudge factor.
Jun 28, 2020 11:34:40.017 [0x7f52497fa700] DEBUG - MDE: Selected protocol hls; container: mpegts
Jun 28, 2020 11:34:40.017 [0x7f52497fa700] DEBUG - MDE: analyzing media item 207663
Jun 28, 2020 11:34:40.017 [0x7f52497fa700] DEBUG - MDE: Winchester (2018): no direct play video profile exists for http/mkv/h264
Jun 28, 2020 11:34:40.017 [0x7f52497fa700] DEBUG - MDE: Winchester (2018): no direct play video profile exists for http/mkv/h264/dca
Jun 28, 2020 11:34:40.017 [0x7f52497fa700] DEBUG - MDE: Cannot direct stream audio stream due to codec dca when profile only allows aac
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - MDE: Winchester (2018): selected media 0 / 207663
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - Streaming Resource: Calculated bandwidth of 31063kbps exceeds bandwidth limit. Changing decision parameters provided by client to fit bandwidth limit of 720kbps
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - Streaming Resource: Determining preferred transcode encoders through transcode only decision.
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - Codecs: testing h264_vaapi (encoder)
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - Codecs: hardware transcoding: testing API vaapi
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jun 28, 2020 11:34:40.018 [0x7f52497fa700] DEBUG - Codecs: testing h264_nvenc (encoder)
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - Codecs: hardware transcoding: testing API nvenc
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded lib: libcuda.so.1
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuInit
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetCount
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGet
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetAttribute
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetName
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceComputeCapability
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxCreate_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxSetLimit
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxPushCurrent_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxPopCurrent_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxDestroy_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemAlloc_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemAllocPitch_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemsetD8Async
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemFree_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemcpy2D_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemcpy2DAsync_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGetErrorName
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGetErrorString
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuStreamCreate
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuStreamQuery
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuStreamSynchronize
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuStreamDestroy_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuStreamAddCallback
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuEventCreate
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuEventDestroy_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuEventSynchronize
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuEventQuery
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuEventRecord
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuLaunchKernel
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuModuleLoadData
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuModuleUnload
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuModuleGetFunction
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuTexObjectCreate
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuTexObjectDestroy
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGLGetDevices_v2
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGraphicsGLRegisterImage
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGraphicsUnregisterResource
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGraphicsMapResources
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGraphicsUnmapResources
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuGraphicsSubResourceGetMappedArray
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetUuid
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuImportExternalMemory
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDestroyExternalMemory
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuExternalMemoryGetMappedBuffer
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuExternalMemoryGetMappedMipmappedArray
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMipmappedArrayGetLevel
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMipmappedArrayDestroy
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuImportExternalSemaphore
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDestroyExternalSemaphore
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuSignalExternalSemaphoresAsync
Jun 28, 2020 11:34:40.019 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuWaitExternalSemaphoresAsync
Jun 28, 2020 11:34:40.037 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.037 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 267124 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.037 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.037 [0x7f5248ff9700] DEBUG - Audio Stream: 596655, Subtitle Stream: -1
Jun 28, 2020 11:34:40.133 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for DC’s Legends of Tomorrow.
Jun 28, 2020 11:34:40.430 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Line of Duty.
Jun 28, 2020 11:34:40.432 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for True Blood.
Jun 28, 2020 11:34:40.434 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Lost.
Jun 28, 2020 11:34:40.435 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Money Heist.
Jun 28, 2020 11:34:40.437 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for The Mentalist.
Jun 28, 2020 11:34:40.439 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for F is for Family.
Jun 28, 2020 11:34:40.440 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Fear the Walking Dead.
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 265871 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - Audio Stream: 590746, Subtitle Stream: -1
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 265845 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.441 [0x7f5248ff9700] DEBUG - Audio Stream: 590686, Subtitle Stream: -1
Jun 28, 2020 11:34:40.444 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for The West Wing.
Jun 28, 2020 11:34:40.444 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.444 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 265426 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.444 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.444 [0x7f5248ff9700] DEBUG - Audio Stream: 589633, Subtitle Stream: -1
Jun 28, 2020 11:34:40.446 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Alone.
Jun 28, 2020 11:34:40.446 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.446 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 265394 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.446 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.446 [0x7f5248ff9700] DEBUG - Audio Stream: 589550, Subtitle Stream: -1
Jun 28, 2020 11:34:40.448 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Farscape.
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - There were 1 top-level paths for Star Trek.
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 268669 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - Audio Stream: 603160, Subtitle Stream: -1
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - Selecting best audio stream for part ID 255425 (autoselect: 1 language: en)
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - We’re going to try to auto-select a subtitle.
Jun 28, 2020 11:34:40.578 [0x7f5248ff9700] DEBUG - Audio Stream: 565412, Subtitle Stream: -1
Jun 28, 2020 11:34:40.598 [0x7f529e441700] DEBUG - Completed: [10.10.20.5:60638] 200 GET /hubs?promoted=1&includeTypeFirst=1&contentDirectoryID=4%2C2&count=50&includeExternalMedia=1&includeRecentChannels=1 (56 live) TLS GZIP 1340ms 65773 bytes (pipelined: 3)
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded lib: libcuda.so.1
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuInit
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetCount
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGet
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetAttribute
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceGetName
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuDeviceComputeCapability
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxCreate_v2
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxSetLimit
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxPushCurrent_v2
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxPopCurrent_v2
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuCtxDestroy_v2
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemAlloc_v2
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemAllocPitch_v2
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemsetD8Async
Jun 28, 2020 11:34:41.203 [0x7f52497fa700] DEBUG - [FFMPEG] - Loaded sym: cuMemFree_v2

Thank you for the logs. I am seeing a number of errors which raise questions

  1. How is this proxied? ( you have a number of curl calls failing which should not)
  2. You also show 10.x.x.x (RFC-1918 address) which shows as WAN .
  3. which version of the Nvidia drivers are installed?
  4. Is this installed as a SNAP or the DPKG package?

Hi there, thanks for coming back so quickly.

  1. I have NGINX setup as a reverse proxy, maybe there is issues with the settings?
  2. Maybe this ties into point one?
  3. 440.10
  4. This is a DPKG.

Thanks!

When PMS is behind a proxy, and knowing that the codecs are downloaded on demand, there is the possibility they weren’t downloaded cleanly initially.

As first step,

  1. Stop Plex
  2. Open a terminal window
  3. Delete the contents of “/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs”
  4. Start Plex
  5. As you start to play, there will be a first-time additional startup delay as the codecs are downloaded. This is normal and expected.
  6. Let’s see if it rights itself after this point

Plex Media Server Logs_2020-06-29_07-54-13.zip (4.5 MB)

Hi!

Updated log file attached.

Thanks! I did as instructed, it redownloaded “99c90e0-3095-linux-x86_64 + EasyAudioEncoder-652-linux-x86_64”. But the issue remains, when i turn on hardware transcoding it fails to start and FFMPEG keep reloading. The moment i turn off hardware transcoding the stream starts.

Is there any way to determine which GPU plex is trying to use? I should mention this that is running inside a VMWare VM, so need to make sure that its using the right GPU (P2000) which is D129.

drwxr-xr-x 3 root root 140 Jun 29 07:41 .
drwxr-xr-x 19 root root 4220 Jun 29 07:41 …
drwxr-xr-x 2 root root 120 Jun 29 07:41 by-path
crw-rw----+ 1 root render 226, 0 Jun 29 07:41 card0
crw-rw----+ 1 root render 226, 1 Jun 29 07:41 card1
crw-rw----+ 1 root render 226, 128 Jun 29 07:41 renderD128
crw-rw----+ 1 root render 226, 129 Jun 29 07:41 renderD129

Regards.

have to ask a few questions

one are you it in a vm or as a base install of ubuntu

are you using nvidia driver

if your using nvidia drivers

do ls -la /dev/nvidia* and report what you find

also do lsmod | grep nvidia report what you find

run nvidia-smi and report what its output

you need a few folders with proper permissions for transcoding to work unless your issue is drivers

your output should look like this
root@pve:~# ls -ls /dev/nvidia*
0 crw-rw-rw- 1 root 100000 195, 0 Jun 25 09:38 /dev/nvidia0
0 crw-rw-rw- 1 root 100000 195, 255 Jun 25 09:38 /dev/nvidiactl
0 crw-rw-rw- 1 root 100000 195, 254 Jun 25 09:38 /dev/nvidia-modeset
0 crw-rw-rw- 1 root 100000 511, 0 Jun 25 09:38 /dev/nvidia-uvm
0 crw-rw-rw- 1 root 100000 511, 1 Jun 25 09:38 /dev/nvidia-uvm-tools
root@pve:~# uvm is cuda support for transcodes it is where plex uses the api code for cuda

if you missing any of those folders run these to command and try to transcode again
nvidia-modprobe -c0 -u
nvidia-smi

one are you it in a vm or as a base install of ubuntu

Yes, running in a VMWare VM with the GPU passed through.

do ls -la /dev/nvidia* and report what you find

crw-rw-rw- 1 root root 195, 254 Jun 29 07:41 /dev/nvidia-modeset
crw-rw-rw- 1 root root 237, 0 Jun 29 07:41 /dev/nvidia-uvm
crw-rw-rw- 1 root root 237, 1 Jun 29 07:41 /dev/nvidia-uvm-tools
crw-rw-rw- 1 root root 195, 0 Jun 29 07:41 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Jun 29 07:41 /dev/nvidiactl

also do lsmod | grep nvidia report what you find

nvidia_uvm 966656 2
nvidia_drm 45056 0
nvidia_modeset 1114112 1 nvidia_drm
Nvidia 20680704 17 nvidia_uvm,nvidia_modeset
drm_kms_helper 184320 2 vmwgfx,nvidia_drm
drm 491520 7 vmwgfx,drm_kms_helper,nvidia_drm,ttm
ipmi_msghandler 106496 2 ipmi_devintf,Nvidia

run nvidia-smi and report what its output

±----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100 Driver Version: 440.100 CUDA Version: 10.2 |
|-------------------------------±---------------------±---------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro P2000 Off | 00000000:0B:00.0 Off | N/A |
| 54% 49C P0 19W / 75W | 10MiB / 5059MiB | 0% Default |
±------------------------------±---------------------±---------------------+

±----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
±----------------------------------------------------------------------------+

Sorry for the formatting, but you get the gist.

i know i was having the same issue you were i am guessing as i have not got the answer

your gpu passthrough it work but your missing features for full support it seems that your having permission issues

i would suggest you double check your documentation with gpu passthrough and how to get full support to the host os i know i was using immou

i am thinking it must have an issue with bios there must be an option that is just not enable for the feature support

Thanks. Dont think its permissions:

ls -la /dev/dri

total 0
drwxr-xr-x 3 root root 140 Jun 29 07:41 .
drwxr-xr-x 19 root root 4220 Jun 29 07:41 …
drwxr-xr-x 2 root root 120 Jun 29 07:41 by-path
crw-rw----+ 1 root render 226, 0 Jun 29 07:41 card0
crw-rw----+ 1 root render 226, 1 Jun 29 07:41 card1
crw-rw----+ 1 root render 226, 128 Jun 29 07:41 renderD128
crw-rw----+ 1 root render 226, 129 Jun 29 07:41 renderD129

groups plex

plex : plex render

The user plex has access to the group render which the GPU’s are assigned. I’ll take a look at the BIOS, but the fact that it worked previously suggest to me that it’s OS or Plex related.

I redirected the hardware to make sure that plex was using the correct GPU, the same issue remains with FFMPEG reloading over and over with clients unable to start a transcode.

total 0
drwxr-xr-x 3 root root 140 Jun 29 11:25 .
drwxr-xr-x 19 root root 4220 Jun 29 11:26 …
drwxr-xr-x 2 root root 120 Jun 29 11:25 by-path
lrwxrwxrwx 1 root root 14 Jun 29 11:25 card0 -> /dev/dri/card1
crw-rw----+ 1 root render 226, 1 Jun 29 11:25 card1
lrwxrwxrwx 1 root root 19 Jun 29 11:25 renderD128 -> /dev/dri/renderD129
crw-rw----+ 1 root render 226, 129 Jun 29 11:25 renderD129

Anyone got any suggestions?

I see the video is 4K ?
Are you 100% certain the card is rated (by Nvidia) for 4K ?

Logs indicate failure when the transcoder is testing it at 4K decode
(Transcoder attempts to transcode a simple test frame.)

EDIT: The video is: mkv/hevc/truehd.

Make certain the card supports HEVC 2160p

quadro p2000 shouldn’t have any problem running HW.

since your running vmware, that would be the first place I would start, triple check pass through configuration and perms, however if nvidia-smi runs from within the VM, then it would seem like drivers and such are working correctly.

Still, all it takes is one bad permission or wrong config to mess things up.

Thanks! Will take a look at the permissions again.

Just to follow-up on this, not really any further forward. Here is an update of what I have done and where I am at.

  • Created a new Plex VM and installed from scratch with a test DB - Same issues which leads me to believe the issue isn’t with Plex, Linux or Drivers.

  • Checked the Hardware, the card does transcode but Plex kicks back random “input/ouput” errors a couple of time and then it works after 2-5 attempts. This causes a huge delay before transcoded streams start, but when they are going they run fine.

  • Reserved the MHz and Ram in ESXI, and made them high priority shares.

  • I need to try disabling the VMWare SVGA display adapter, but Ubuntu doesn’t want to post without it. I think I may need a dummy display port connector on the GPU to emulate a monitor. ?!?

  • Another option is to try another PCI-E Slot, but not sure if that would help.

If anyone has managed to get Plex working with hardware acceleration on an ESXi VM would be interested to hear if you had any issues and how you solved them.

Thanks!

Plex Media Server Logs_2020-07-30_16-50-37.zip (5.0 MB)

Screenshot of logs filtered by hardware when starting a transcode:

Screenshot of nvidia-smi during a transcode.
2

HW through VM is often complex, coming down to specific configuration switches.

perhaps some of these topics may help.

https://www.google.com/search?q=plex+vm+hardware+acceleration+esxi

1 Like

I’m going to be direct and ask perhaps a rude (for which I apologize) question.

Why is there a VM involved?

Why all the complexity?

the more that is thrown into the tub – the easier it is to stop up the drain.

What am I not understanding?

Fair question… But i think we all have a responsibility to challenge oursleves to learn, and grow. If I wanted to go the easy path I would just install Plex on the spare i7 that i have.