***GUIDE*** Plex Hardware Acceleration using Intel Quick Sync


Recommended Posts

On 5/15/2022 at 5:22 PM, flyize said:

I'm using Alder Lake.

In that case using plex beta might not work, but since we had the same issue you could still give it a try. If it doesn't work, I hope they will fix your issue soon.

Link to comment
1 hour ago, jsrk said:

so you changed the tag to 'plexpass' and the version to 'beta' and it didn't work?

I'm pretty sure I've done that, yes. I don't think this is a Plex problem though, as it happens in anything else that attempts to use the iGPU with Alder Lake. I just tried with the 5.18RC7 linux kernel and its much better, but still crashes.

Link to comment
19 hours ago, flyize said:

I'm pretty sure I've done that, yes. I don't think this is a Plex problem though, as it happens in anything else that attempts to use the iGPU with Alder Lake. I just tried with the 5.18RC7 linux kernel and its much better, but still crashes.

I am sorry, that problem seems out of my depth. Since 12th gen intel is very popular, I am sure they will fix it soon.

Link to comment
On 2/28/2022 at 12:46 PM, Dural said:

 

I seem to be having the same issue with an 11500T, h264 starts up immediately and shows hw encoding.  When I try to do the same on an h265 file it shows it starts and shows hw encoding but the client just sits there spinning.  It looks like the cpu has one thread that goes to 100% while the gpu shows no load.

 

edit-Just figured it out, uncheck Use hardware accelerated video encoding but leave Use hardware acceleration when available checked.  Immediately worked after doing this and cpu load is <20% (4 threads being used for VM so not necessarily just from transcoding) while gpu video load is ~8%.

Wanted to point out, i'm digging through a lot of this now, that many HEVC (x265) encodes use TrueHD and other HD audio codecs that plex is bugged an having codec issues with. Also plex will never transcode to x265 for now only x264.  The first thing you should do if ever having a transcode issue is go into your plex appdata folder and delete the codecs file. Then restart plex and will install the latest codecs. Most the time that fixes the issue. But plex does have known playback issues of certain file types associated with the audio used. It's why I'm having unmanic running through everything with the AC3 codec taking all audio that's not AC3 and turning it into AC3.  I use Bose 700 soundbars in two of my rooms, headphones on my macbook, and at other places have large tower speakers in a 2.1 setup so going past 5.1 isn't an issue right now. Everything I'm running is on AppleTV4ks.

Link to comment
  • 1 month later...
On 2/28/2022 at 7:46 PM, Dural said:

 

I seem to be having the same issue with an 11500T, h264 starts up immediately and shows hw encoding.  When I try to do the same on an h265 file it shows it starts and shows hw encoding but the client just sits there spinning.  It looks like the cpu has one thread that goes to 100% while the gpu shows no load.

 

edit-Just figured it out, uncheck Use hardware accelerated video encoding but leave Use hardware acceleration when available checked.  Immediately worked after doing this and cpu load is <20% (4 threads being used for VM so not necessarily just from transcoding) while gpu video load is ~8%.

Can confirm that this worked for me on my i7-11700k. Thank you.

Link to comment
  • 2 weeks later...

No way of getting this to work.

 

UnRAID 6.10.3

Intel i5-11400

Gigabyte B560M DS3H

Plex official container with PlexPass and /dev/dri/ device passed.

 

iGPU is working like a charm with Jellyfin, but unable to get HW transcode with Plex. With or whitout tonemapping, just with Use Hardware acceleration when available... Plex never uses the iGPU for transcode.

 

Any king of bug? Tried different containers like hotio or Linuxserver ones, but same result.

Link to comment
10 hours ago, dgirard said:

I also can confirm this worked on i5-11400  

 

Can you confirm hw transcode working fine with HDR tonemapping enabled? I have the same CPU and, with tonemapping enabled, only get the spinning wheel on the clients.

 

In fact, I have to check both hardware transcode options for hw transcode enabling.

Edited by PsychoRS
Link to comment
  • 2 weeks later...
On 7/7/2022 at 4:47 AM, PsychoRS said:

Can you confirm hw transcode working fine with HDR tonemapping enabled? I have the same CPU and, with tonemapping enabled, only get the spinning wheel on the clients.

 

In fact, I have to check both hardware transcode options for hw transcode enabling.

image.thumb.png.6ff405428f6ef1fe63eb6c938d7a99b5.png

 

These are the settings that are working for me on the i7-11700k

Link to comment
  • 2 weeks later...
On 3/1/2022 at 5:30 PM, freeridekid said:

Is there a guide to get HW transcoding working with a 10th series iGPU on 6.9.2?

 

I have Intel Top and gtv-g installed and the igpu passe through to plex, but i am still unable to get it to hardware transcode

 

On 3/8/2022 at 7:27 PM, freeridekid said:

I'm using the hotio container, if that matters

 

On 3/11/2022 at 6:53 PM, totoleouf said:

hello,

i am using unraid 6.9.2

with intel core i5-10400 processor

I am using the HOTIO plex container.

Hardware transcoding only works on 720 or 1080p videos, all 4K files are transcoded by the CPU. I don't know what to do, can someone help me?

 

 

 

 

@freekie and @totoleouf did you ever get this HDR hardware transcoding to work? I also use Hotio's Plex container and am using the i7-10700k. Hardware transcoding works well for all content that doesn't need Tone Mapping. Any content that requires tone mapping won't hardware transcode.

 

According to this Plex Support Article HDR HW transcoding should be supported inside docker. It does mention this, however:

 

Quote

 

On some platforms, it may be necessary to install additional drivers and libraries before this feature can be used.

On Linux and FreeBSD systems using Intel GPUs for hardware acceleration, the “libOpenCL” library and “Beignet” GPU driver are required. For instance, on Ubuntu or Debian systems, you would need to run the following command to install these dependencies:

sudo apt install ocl-icd-libopencl1 beignet-opencl-icd

 

 

So maybe some libraries are missing?

 

When I run "docker exec -it plex ls -lh /dev/dri" in unraid terminal I get the following output:

 

total 0
crwxrwxrwx 1 root video14115 226,   0 Jul 24 14:29 card0
crw-rw---- 1 root video14115 226,   1 Jul 24 14:29 card1
crwxrwxrwx 1 root video14115 226, 128 Jul 24 14:29 renderD128
crwxrwxrwx 1 root video14115 226, 129 Jul 24 14:29 renderD129

 

When Tone Mapping is enabled in Plex and I attempt to transcode HDR material the following output shows up in my Plex log:

beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

 

Edited by venicenerd
Link to comment
7 hours ago, venicenerd said:

 

 

 

 

 

@freekie and @totoleouf did you ever get this HDR hardware transcoding to work? I also use Hotio's Plex container and am using the i7-10700k. Hardware transcoding works well for all content that doesn't need Tone Mapping. Any content that requires tone mapping won't hardware transcode.

 

According to this Plex Support Article HDR HW transcoding should be supported inside docker. It does mention this, however:

 

 

So maybe some libraries are missing?

 

When I run "docker exec -it plex ls -lh /dev/dri" in unraid terminal I get the following output:

 

total 0
crwxrwxrwx 1 root video14115 226,   0 Jul 24 14:29 card0
crw-rw---- 1 root video14115 226,   1 Jul 24 14:29 card1
crwxrwxrwx 1 root video14115 226, 128 Jul 24 14:29 renderD128
crwxrwxrwx 1 root video14115 226, 129 Jul 24 14:29 renderD129

 

When Tone Mapping is enabled in Plex and I attempt to transcode HDR material the following output shows up in my Plex log:

beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware
(If you have multiple ICDs installed and OpenCL works, you can ignore this message)

 

FIXED by using the Linuxserver repository. Apparently there was some sort of problem with some drivers and Linuxserver already implemented the fix:

 

 

https://github.com/linuxserver/docker-plex/issues/318#issuecomment-1187584352

 

  • Like 1
Link to comment
  • 1 month later...

My iGPU won't HW Transcode with Tone Mapping enabled.

Coffee Lake, i3-9100, UHD 630

Unraid 6.10.3
Repository: lscr.io/linuxserver/plex

VERSION: docker
Extra Parameters: --device=/dev/dri

 

I think the driver is loaded correctly:

https://imgur.com/D3Q7ukl

 

Transcode Settings in Plex:
https://imgur.com/FVXS8sY
 

I've tried it a few different ways, with the same 4k movie, quality set to 1080p Medium. I watched the Plex dashboard/Unraid CPU usage. CPU values are after giving it a minute or two to settle.
 

tone on, hw accel on, video enc on		4K HDR10 (HEVC Main 10) -> 1080P (H264)—Transcode				90%+
tone off, hw accel on, video enc on		4K HDR10 (HEVC Main 10) (hw) -> 1080P (H264)—Transcode (hw)		2-30%
tone on, hw accel on, video enc off		4K HDR10 (HEVC Main 10) (hw) -> 1080P (H264)—Transcode			40-60%, spikes to 90


Should I be expecting this or better? I thought the UHD 630 could do tone mapping but as soon as it's enabled it's offloading to the CPU.

I'm not really planning on ever transcoding 4k movies (the library is not shared with anyone but myself) but I don't like when things aren't working when they're supposed to 🤣

Link to comment
4 minutes ago, daithi said:

My iGPU won't HW Transcode with Tone Mapping enabled.

Coffee Lake, i3-9100, UHD 630

Unraid 6.10.3
Repository: lscr.io/linuxserver/plex

VERSION: docker
Extra Parameters: --device=/dev/dri

 

I think the driver is loaded correctly:

https://imgur.com/D3Q7ukl

 

Transcode Settings in Plex:
https://imgur.com/FVXS8sY
 

I've tried it a few different ways, with the same 4k movie, quality set to 1080p Medium. I watched the Plex dashboard/Unraid CPU usage. CPU values are after giving it a minute or two to settle.
 

tone on, hw accel on, video enc on		4K HDR10 (HEVC Main 10) -> 1080P (H264)—Transcode				90%+
tone off, hw accel on, video enc on		4K HDR10 (HEVC Main 10) (hw) -> 1080P (H264)—Transcode (hw)		2-30%
tone on, hw accel on, video enc off		4K HDR10 (HEVC Main 10) (hw) -> 1080P (H264)—Transcode			40-60%, spikes to 90


Should I be expecting this or better? I thought the UHD 630 could do tone mapping but as soon as it's enabled it's offloading to the CPU.

I'm not really planning on ever transcoding 4k movies (the library is not shared with anyone but myself) but I don't like when things aren't working when they're supposed to 🤣

This is currently broken in Plex. You can either install an earlier version of Plex (forget which one) or wait for Plex to finally fix this. It’s been broken for about 6 weeks I think. 

Link to comment
44 minutes ago, venicenerd said:

This is currently broken in Plex. You can either install an earlier version of Plex (forget which one) or wait for Plex to finally fix this. It’s been broken for about 6 weeks I think. 

Ah, well if it's an issue everyone is having and not just me then I'll live with it. They've introduced stuff like edition tagging within the last 6 weeks so I'll stay with a current release.
I'm new to Unraid - just trying to add one container at a time and make sure everything is working before adding a whole stack and trying to figure out what's causing issues.

Link to comment
  • 3 weeks later...

Hmm... I'm getting weird behavior. Just upgraded from an ATOM-Based system to a SuperMicro motherboard, X11SSL-F, running with an i3 6100 hoping to get at least some transcoding performance out of it. 

Following the steps, the driver-step is never added. The modprobe command doesn't fail or anything, but it's missing the folder once done. 

But am I to understand that IPMI and quicksync cannot ever co-exist? I really like having IPMI for troubleshooting, since my server is headlesss in a closet. 

If that's the case I guess I'll have to go Xeon or add a dedicated GPU instead. Please advise. 

 

root@FortyTwo:/# modprobe i915
root@FortyTwo:/# cd /dev/dri
root@FortyTwo:/dev/dri# ls
by-path/  card0

Link to comment

@Froberg As mentioned by @Taddeusz, motherboards based on the C232 chipset do not support QSV and iGPUs.  Same with C242, C252, etc.  You need the c2X6 chipsets for QSV/iGPU support.  I have two motherboards in unRAID servers right now that are based on the C246 chipset and both have IPMI.  QSV and the iGPU are supported in addition to the ASpeed chip for IPMI video either via a special BIOS to enable both or by settings in the public BIOS.

 

There are some threads in these forums about the settings needed to enable both iGPU/QSV and IPMI on some Supermicro motherboards but that requires a board with the appropriate chipset which your X11SSL-F does not have.

Link to comment
19 hours ago, Froberg said:

So dedicated GPU or broke it is, then? 


Or just rely on Xeon processing power. 

Those are your options with your motherboard.  You can try CPU transcoding to see how it keeps up and go with a dedicated GPU if the CPU can't handle it.

 

With CPU (software) transcoding, passmark scores for the CPU are important.  Your i3 9100 has a passmark score of 6629.

 

In general, 2000 passmarks are needed for each 1080p stream (forget 4K) you need to transcode plus 1500-2000 for unRAID overhead.  With a passmark score of 6629, you can simultaneously transcode two streams and still have enough for unRAID to do its thing.

 

If you put a supported Xeon in your motherboard, the E3-1245 V6 has a passmark score of 8684.  That will give you three simultaneous 1080p transcoded streams + unRAID overhead.

 

UPDATE:  I incorrectly linked to the passmark score for the i3-9100 CPU when the CPU in question on the Supermicro X11SSL-F motherboard is the i3-6100. The passmark score for the i3-6100 is 4154 meaning only one transcoding stream is possible.

 

Edited by Hoopster
Link to comment

It's still twice as powerful as my Avoton setup.. so there's that at least. 

I wanted ECC support, IPMI and quicksync.. thought I had it nailed with this setup.. ah well. 

 

Hopefully AMD will get some sort of hardware transcoding capability supported by Plex in the future, they're much less stingy with the ECC support. 

Thanks all. 

Link to comment

I've got an issue since yesterday using intel 12600k and had a nvidia quadro p600. Transcoding with the intel igpu finally worked, with the newest plexpass version - have seen it transcoding in intel_gpu_top and the p600 was in P8 while transcoding so it was clearly the card0 visible intel igpu in intel_gpu_top. Passed /dev/dri to plex and everything mentioned in the first post.

 

After it worked with the igpu I wanted to remove the p600 but after this the hw accelerated transcoding was broken. Intel gpu top showed card1 now but only cpu transcoding was working now. I think the problem is that plex is expecting card0 but it's now card1 instead. Is there a way to change that the intel igpu is again recognized as card0? Tried switching in bios from PEG to IGD and back but it didn't work. Or is it possible to tell plex to use card1 instead of card0? Also have a monitor connected to the igpu hdmi port also tried a dongle in the displayport of the igpu but nothing worked. I tried to remove all the nvidia stuff like nivida device capabilites but nothing worked.

 

Seems to be resolved had an issue in the vfio bindings - after i deleted the content of my /boot/config/vfio-pci.cfg it worked - forgot that I had something configured there

Edited by Blobbonator
solved the problem myself
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.