Help with Plex hardware transcoding


Recommended Posts

  • 2 weeks later...

I've followed this but I've had no luck whatsoever. I have a i7-7700 on an ASUS Prime B250M-A board. I've set it to CPU graphics and enabled multi-monitor. I've added the needed lines to the go file. I've even changed the syslinux.cfg that I found on reddit. It will not load the drivers. This is what I get:

root@Tower:/dev/dri# ls -1
by-path/
card0
renderD128

 

This is what I have in the go file:

#Setup drivers for hardware transcoding in Plex
modprobe i915

chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri
# Start the Management Utility
/usr/local/sbin/emhttp &

 

I added this to the syslinux.cfg

label unRAID OS

menu default

kernel /bzimage

append pci=realloc=off initrd=/bzroot i915.alpha_support=1

 

and I've added --device /dev/dri:/dev/dri

 

It will not load the drivers. When I try and load it through terminal I get:

chmod: cannot access '/dev/dri': No such file or directory

 

Can anyone tell me what I'm doing wrong?

 

Link to comment
4 minutes ago, jwiese997 said:

I

 

and I've added --device /dev/dri:/dev/dri

 

It will not load the drivers. When I try and load it through terminal I get:

chmod: cannot access '/dev/dri': No such file or directory

 

Can anyone tell me what I'm doing wrong?

 

Did you follow the update in my previous post? I had to add the device to the docker container. Specifying it in extra parameters doesn’t seem to work anymore.

Edited by nickp85
Link to comment
1 minute ago, jwiese997 said:

How do I do that? Sorry, I'm still learning.

Add a video device to the Plex container with a value of /dev/dri:/dev/dri.  I also hope you rebooted your server after making the other config changes.

 

Lastly, hw transcode is only available to Plex Pass users so make sure you are a Plex Pass member.

image.thumb.png.d829dcad2cb4d1158621b530d1954fb2.png

 

image.png.6ba4ed2ca41b7406d8a7038076a2f7f2.png

image.png.64e0cae307cb0d6746f49ed1528e49de.png

Link to comment
12 minutes ago, nickp85 said:

Add a video device to the Plex container with a value of /dev/dri:/dev/dri.  I also hope you rebooted your server after making the other config changes.

 

Lastly, hw transcode is only available to Plex Pass users so make sure you are a Plex Pass member.

image.thumb.png.d829dcad2cb4d1158621b530d1954fb2.png

 

image.png.6ba4ed2ca41b7406d8a7038076a2f7f2.png

image.png.64e0cae307cb0d6746f49ed1528e49de.png

Yep, that finally did it. Thanks so much. I'm looking to add in a p2000 quadro before too long. Will I need to undo all of this at that time?

Link to comment
3 minutes ago, jwiese997 said:

Yep, that finally did it. Thanks so much. I'm looking to add in a p2000 quadro before too long. Will I need to undo all of this at that time?

I'm pretty sure it's been said there is no support for nvidia with hardware transcoding to a docker container.  You'd have to use your CPU.  But now that you're doing hardware transcode, should not have any issues running multiple streams and such.  I had a friend streaming a 4K HDR movie transcoded down to 1080p while I was playing a game on my Windows 10 VM (nvidia GPU passthrough) and the CPU hit from what he was doing was unnoticeable in my game.  I have an 8700K so only one generation later.

 

Yeah, Plex says CPU only:
https://support.plex.tv/articles/115002178853-using-hardware-accelerated-streaming/

Edited by nickp85
Link to comment
29 minutes ago, nickp85 said:

Specifying it in extra parameters doesn’t seem to work anymore.

Must be hardware/config-specific.  I still have the dev/dri device info in Extra Parameters.  It has always been there and continues to work through all Plex updates.

 

I am glad that adding it as a device worked for you and others if, for some reason, it's not doing the job in Extra Parameters.

Link to comment

Some clarifications that I've found:

 

  1. If you are using an IPMI board that has console redirection, odds are that you will lose remote console to enable this
  2. You /can/ use an NVidia card, but it has to be passed through to a VM.  If you use a GTX/RTX you can only get 2 streams, if you use a P2000 you can do 15+ with ease
    1. The VM must be windows, as Linux doesn't support both encode and decode in hardware with Nvidia (As stated above in thread)
  3. Even with hardware transcoding there are issues:
    1. Plex does not properly deal with HDR, so if you are transcoding 4k TV you should be fine, but 4k Movies with HDR will look like /crap/ when transcoded (Colors totally washed out, not even worth watching IMHO).  No update from Plex on if this is even going to be addressed.
    2. A lot of devices have issues with profiles at this point.  For instance, I can transcode a 4k HDR movie to 720p at 8x+ speeds, UNLESS it is transcoding for my kids Firestick and then it is stuck at .8 (So buffering with one core on the CPU at 100%).  This is something to do with the available profiles plex sees for that client.  FTR: Shield and Roku all seem to work cleanly....TV apps are hit and miss.

I just wanted to toss this up here, as it seems a lot of people find this thread when looking into HW transcoding...you can find more details scattered about the forums on each of these issues with a search!

 

Edited by Tybio
Link to comment
  • 2 weeks later...
On 3/8/2018 at 7:22 AM, Hoopster said:
To enable hardware transcoding in Plex, do the following:

Also, you need some entries in your go file like this (after entering these commands in the CLI):


#Setup drivers for hardware transcoding in Plex
modprobe i915
chmod -R 777 /dev/dri

And in your Plex server Transcoder Settings page you need to enable hardware acceleration

 

Could you elaborate on the "Go file" entries ? where is this file located?

Also what CLI command? the above id for the "Go file" right?

I am Running the Linux Plex docker - Do I need any key's in the new version to enable Plex Pass?

Also would the release value: latest is that the same as Beta?

 

Sorry I have been looking for some video or dummy guide to get this working but so far no luck ;-)

As always all help is much appreciated - I am a long time Enterprise Synology user, but the freedom using UNRAID is really great!

Link to comment
  • 3 weeks later...

Hello All,

 

After spending a lot of $$ on upgrades so I could handle more concurrent streams, I realized the limitations on Unraid.  I have followed this guide but still not having any luck.  Would greatly appreciate any advice on my situation:

 

CPU: Intel Core i9-9900K Coffee Lake

In all situations below, the Plex check mark box to use hardware acceleration is active and I have it clicked.

 

I went into the BIOS and set to IGD (I have a MSI MAG Z390 Thomahawk)

 

I tried both methods for commands in the docker; when I apply to either, the plex server stops and I cannot restart unless I remove what I added.

Docker advanced view, extra parameters: "--device /dev/dri:/dev/dri"  I also tried "--device=/dev/dri:/dev/dri" as it showed that way in some of the examples.

Added Device path with /dev/dri:/dev/dri

 

I added the following to my go file

#Setup drivers for hardware transcoding in Plex
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri

 

If I type in "modprobe i915" the prompt comes right back.  

I did not have a dri directory inside the dev directory.  I eventually added it manually but it disappears on reboot.

 

Edit:

I noticed on last reboot that just prior to the chown and chmod commands (which both return a "no such file or directory" error) I have a line that reads " cat: write error: Broken pipe"

 

Last line after boot shows "Disabling IRQ #16"

 

I did find in another post that you should turn on "dual monitor" if your motherboard supports in addition to setting default to IGD.  I have a few users on the server so will try that once the server is not in use and report back. 

 

Edit 2:  with MSI you have to set to PEG in order to get the IGD dual monitor setting.  I set to PEG and dual monitor on, but that did not fix the problem.  Arghhh

 

Many thanks in advance for some guidance here.  

 

 

 

Edited by pilgrimHK
Link to comment

What motherboard do you have and do you also have a discrete GPU? I had an issue where even if I set BIOS to iGPU first, if I didn’t have something plugged into the onboard HDMI port, it would automatically make my discrete GPU primary. Once I plugged an HDMI cable into the port and hooked it to my monitor it honored the iGPU as primary. You can unplug the HDMI after boot just make sure to remember for next time.

Link to comment
8 hours ago, pilgrimHK said:

CPU: Intel Core i9-9900K Coffee Lake

In all situations below, the Plex check mark box to use hardware acceleration is active and I have it clicked.

The i915 drivers in the 4.18/4.19 Linxux kernels used by unRAID  DO NOT support i9 iGPUs.  Supposedly that is corrected in the 4.20 Linux kernel, but, of course that is unverified until we see a version of unRAID with that kernel.

 

You can load i915 all you want, but, unfortunately, /dev/dri will never get created with the proper drivers since your iGPU is currently unsupported by the i915 graphics drivers.

Edited by Hoopster
Link to comment
On 3/2/2019 at 11:23 PM, Hoopster said:

The i915 drivers in the 4.18/4.19 Linxux kernels used by unRAID  DO NOT support i9 iGPUs.  Supposedly that is corrected in the 4.20 Linux kernel, but, of course that is unverified until we see a version of unRAID with that kernel.

 

You can load i915 all you want, but, unfortunately, /dev/dri will never get created with the proper drivers since your iGPU is currently unsupported by the i915 graphics drivers.

Arghhhhhh...  Many thanks for the insight.  I guess I reached too high in my upgrade!  

 

Any insight on what the most powerful chip that is supported might be?  

 

Edited by pilgrimHK
Link to comment
On 3/2/2019 at 8:49 PM, nickp85 said:

What motherboard do you have and do you also have a discrete GPU? I had an issue where even if I set BIOS to iGPU first, if I didn’t have something plugged into the onboard HDMI port, it would automatically make my discrete GPU primary. Once I plugged an HDMI cable into the port and hooked it to my monitor it honored the iGPU as primary. You can unplug the HDMI after boot just make sure to remember for next time.

 

It is a MSI MAG Z390 Tomahawk.  it does have a HDMI port and I do have a monitor plugged in.  Looks like Hoopster had the call that i9 Chip is not supported.  Thanks for the reply

Link to comment
On 1/24/2019 at 2:03 PM, Tybio said:
  1. You /can/ use an NVidia card, but it has to be passed through to a VM.  If you use a GTX/RTX you can only get 2 streams, if you use a P2000 you can do 15+ with ease
    1. The VM must be windows, as Linux doesn't support both encode and decode in hardware with Nvidia (As stated above in thread)

Might not be the case anymore:

 

Link to comment
15 hours ago, pilgrimHK said:

Any insight on what the most powerful chip that is supported might be? 

The previous generation i7-8700K is supported as is the Xeon equivalent E-21XXG.  I am not sure about the i7-9700K.  It might be that all ix-9xxx series iGPUs are unsupported and not just the i9.

 

The ix-8xxx chips used to require alpha support to be enabled in the i915 drivers but that eventually got resolved.  Now the next generation has enough tweaks in the iGPUs that the i915 drivers again need to be updated.

Link to comment
  • 2 months later...

Having problems with Hardware transcoding on Unraid 6.7.0 and running Binhex Docker Build 1.15.6.1079

It used to work perfectly, however whenever I activate Hardware Transcoding now and transcode a stream I get the following errors:

 

In the Plex Docker Log:

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

 

In the Unraid Log:

kernel: [drm] GPU HANG: ecode 8:6:0xacdfbffd, in Plex Transcoder [26671], reason: hang on vecs0, action: reset

kernel: i915 0000:00:02.0: Resetting vecs0 for hang on vecs0

 

The stream itself will say that it's using HW transcoding, but it never starts, just keeps on buffering according to Tautulli and sometimes crashes the docker and even unraid itself.

 

Help is greatly appreciated!

 

Link to comment
On 5/19/2019 at 9:27 PM, semmtex said:

Having problems with Hardware transcoding on Unraid 6.7.0 and running Binhex Docker Build 1.15.6.1079

It just to work perfectly, however whenever I activate Hardware Transcoding now and transcode a stream I get the following errors:

 

In the Plex Docker Log:

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so
Failed to wrapper hybrid_drv_video.so

 

In the Unraid Log:

kernel: [drm] GPU HANG: ecode 8:6:0xacdfbffd, in Plex Transcoder [26671], reason: hang on vecs0, action: reset

kernel: i915 0000:00:02.0: Resetting vecs0 for hang on vecs0

 

The stream itself will say that it's using HW transcoding, but it never starts, just keeps on buffering according to Tautulli and sometimes crashes the docker and even unraid itself.

 

Help is greatly appreciated!

 

I have the same issue.

Link to comment

I have the same issue. I took all the steps to setup GPU passthrough but I get this error every time a transcode starts. I am using Plex from the Linuxserver.io version though for reference.

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

failed to open /data/jenkins/conan_build/290002784/conan/.conan/data/libva/2.1.0-40/plex/stable/package/81a2df5e16044d97d1b088b0e6c9598b5b17f233/lib/dri/hybrid_drv_video.so

Failed to wrapper hybrid_drv_video.so

 

Link to comment
  • 3 months later...
Hi,
 
I have got an Intel i5 9500 CPU. Is this thing still unsupported by the current Unraid Version? Or can I get Hardware Transcoding/Quick Sync to work in plex?

Any Intel 9xxx CPU/iGPU is unsupported until at least Linux kernel 4.20 with updated i915 drivers. Latest version of unRAID still uses kernel 4.19.


Sent from my iPhone using Tapatalk
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.