Docker fun fact: having an nVidia and an intel GPU active at the same time confuses Plex

server-docker

#1

After wasting quite a bit of time trying to get hardware transcoding to work under the docker image, I had kind of a "revelation" that I just want to share with anyone trying to get intel QuickSync hardware transcoding to work under a Container approach:

Check your device names!

In my case, under /dev/dri, I had two devices (card0 and card1). Running Plex under the main system with an X server always online, I never had issues on the recoding part of transcoding apparently (using card0/renderD128, a.k.a. nVidia), but ALSO APPARENTLY, Plex never used my intel GPU (a.k.a. card1/renderD129) for any transcoding whatsoever. It turns out that, when running in Docker, Plex refused to use my nVidia transcoding, which forced me to discover that I could "rename" the devices in a docker-compose file thusly:

...
    devices:
      # My dri devices are weird and my Intel, which I want to share,
      #  is the card1 and renderD129. So I force an odd mapping.
      - /dev/dri/card1:/dev/dri/card0
      - /dev/dri/renderD129:/dev/dri/renderD128
...

And after that, my Dockerized Plex just up and started doing hwdec and hwenc for transcoding like it was nothing.

Hope this helps anyone "stuck" having multiple GPUs and wanting to do hardware transcoding with one and still keep the other.


#2

any chance you can post more info like your docker file ?


#3

Thank you so much @cybik ! I wasted a lot of hours with the same issue and I had never tried mapping only one graphics card (how obvious!). It seems Plex really doesn’t like seeing more than 1 card, especially when the first one isn’t supported (like AMD).