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


312 posts in this topic Last Reply

Recommended Posts

  • Replies 311
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

***Update*** : Apologies, it seems like there was an update to the Unraid forums which removed the carriage returns in my code blocks. This was causing people to get errors when typing commands verbat

Please be courteous and respectful to one another. Thank you

You might find this useful (Yes means the iGPU can both encode and decode.):   BTW: this chart is from the Quick Sync Video Wikipedia page.  

Posted Images

2 hours ago, huapua said:

Can you enable quicksync hardware encoding and simultaneously use the CPU onboard graphics to run a mac VM?

No.  Once a VM takes control any GPU, it is not available for any other use. 

 

Docker containers can share the same GPU for transcoding purposes.  I have had Plex and HandBrake both using the iGPU simultaneously for transcoding/encoding, but for a VM, you need a dedicated GPU.

Link to post

Really good manual as you explain the steps and start testing modprobe before adding this line to the go file.

 

But I still have a question. I did not execute the chmod. Is it really needed or only important for the go file?

 

Edit: I did not add chmod to the go file, rebooted the server and hw transcoding still works?!

Edited by mgutt
Link to post
2 hours ago, mgutt said:

I did not add chmod to the go file, rebooted the server and hw transcoding still works?!

The chmod will likely not be needed for most use cases.  It was added because there were some cases where /dev/dri did not have the right permissions due to other things happening on the server.  The chmod in the go file fixes that on a reboot in case one of those situations comes up.

 

Again, you will likely be able to happily transcode without it.  If the permissions are already correct, setting them again on a reboot won't cause any harm.

Link to post
  • 2 weeks later...

Hey there. I am able to complete all instructions but when I apply the settings to Plex, it fails every time with this error:

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='binhex-plexpass' --net='host' --cpuset-cpus='0,1' --privileged=true -e TZ="America/Chicago" -e HOST_OS="Unraid" -e 'TRANS_DIR'='/mnt/cache/appdata/binhex-plexpass/transcode' -e 'UMASK'='000' -e 'PUID'='99' -e 'PGID'='100' -v '/mnt/user/Files/':'/media':'rw' -v '/mnt/user/Import/':'/Import':'rw' -v '/mnt/cache/appdata/binhex-plexpass':'/config':'rw' --device=' /dev/dri' 'binhex/arch-plexpass' 

docker: /dev/dri is not an absolute path.
See 'docker run --help'.

The command failed.

I tried it with the trailing forward slash as well, same result. Any thoughts on what the issue might be?

Link to post

My command, only for comparison:

/usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='Plex-Media-Server' --net='host' -e TZ="Europe/Berlin" -e HOST_OS="Unraid" -e 'PLEX_CLAIM'='claim-uFHEFjHvdghrRyD_Yh745' -e 'PLEX_UID'='99' -e 'PLEX_GID'='100' -e 'VERSION'='latest' -v '/tmp/plextranscode':'/transcode':'rw' -v '/mnt/user/Plex/data/':'/data':'rw' -v '/mnt/user/Movie/':'/Movie':'ro' -v '/mnt/user/TV/':'/TV':'ro' -v '/mnt/user/Video/Favorite/':'/Video':'rw' -v '/mnt/user/appdata/Plex-Media-Server':'/config':'rw' --device='/dev/dri' 'plexinc/pms-docker:latest' 

Hmm, looks ok for me. Does the path exist?

 

Test it with the following in your terminal:

ls /dev

Edited by mgutt
Link to post
8 hours ago, mgutt said:

My command, only for comparison:


/usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='Plex-Media-Server' --net='host' -e TZ="Europe/Berlin" -e HOST_OS="Unraid" -e 'PLEX_CLAIM'='claim-uFHEFjHvdghrRyD_Yh745' -e 'PLEX_UID'='99' -e 'PLEX_GID'='100' -e 'VERSION'='latest' -v '/tmp/plextranscode':'/transcode':'rw' -v '/mnt/user/Plex/data/':'/data':'rw' -v '/mnt/user/Movie/':'/Movie':'ro' -v '/mnt/user/TV/':'/TV':'ro' -v '/mnt/user/Video/Favorite/':'/Video':'rw' -v '/mnt/user/appdata/Plex-Media-Server':'/config':'rw' --device='/dev/dri' 'plexinc/pms-docker:latest' 

Hmm, looks ok for me. Does the path exist?

 

Test it with the following in your terminal:

ls /dev

Thank you for your response, As I mentioned in my original post, I can do every command successfully, I just can't add it to Plex or I get the error I posted and then it literally breaks my Plex install. I have to reinstall it and then remove those settings before I hit apply.

 

I'm not sure what the error means since it looks like a legit path to me. 

root@REPOSITORY:~# ls /dev/dri
by-path/  card0  renderD128

 

Edited by Keek Uras
Cleaned up code insertion
Link to post

Hello folks! Since i could not get plex Hardware Acceleration running i really could need some help. 

I tried to execute this guide but get errors right from the start.

 

Checked my setup with:

cd /dev/dri

gives me already this error in the unraid terminal:

 

1.jpg.0bc03ab10fcde44b215d5990fe288a4c.jpg

 

since i could not see card0

i typed modprobe i915 followed by again:

cd /dev/dri

and again got the same message:

 

2.jpg.bb69a3f6665b74532c3b66011fcb67f7.jpg

 

 

Since i feel like i have all requirements, i have no idea what could be the mistake - or missing.

Quick overview for your help guys:

  • Plex Pass and Plex Hardware Acceleration enabled
  • Intel CPU with Quick Sync (Intel Xeon E-2278G)
  • Motherboard Setting: Primary Graphics Adapter: Onboard VGA (VGA is plugged to TV to see boot screen etc.) - i dont have hdmi on the MB.
    • Is this already a problem? I also do not see the iGPU in my VM - i only can choose ASPEES AST2500 (BMC Controller) - Is having this a problem?
    • I heared something about headless ... ? Unraid need my iGPU?

3.thumb.jpg.ea6b5a19e9b20ce1ecfee491e8f7c8ad.jpg

 

Now i am afraid about this comment:

Quote

ome machines like the HP MicroServer Gen8 have iLO / IPMI which allows the server to be monitored / managed remotely.

Unfortunately this means that the server has 2 GPUs and ALL GPU output from the server passed through the ancient Matrox GPU. So as far as any OS is concerned

even though the Intel CPU supports Quick Sync, the Matrox one doesn't. =/ you'd have better luck using the new unRAID Nvidia Plugin.

👇

So is this maybe the reason for no iGPU passthrough and the aspeed Graphics output in my VM instead?

 

4.thumb.jpg.d0e5e41ea360233ac4fbd8838fafe08e.jpg

 

So do i need a graphics card? Any recomendations? Quadro P2000 - or is a gaming GPU better if i want to use it too in a Windows 10 VM?

 

Guys i really appreciate your help! Thank you so much!

 

Kind Regards!

image.png

Link to post
5 minutes ago, Mor9oth said:

Now i am afraid about this comment:

👇

So is this maybe the reason for no iGPU passthrough and the aspeed Graphics output in my VM instead?

 

4.thumb.jpg.d0e5e41ea360233ac4fbd8838fafe08e.jpg

 

So do i need a graphics card? Any recomendations? Quadro P2000 - or is a gaming GPU better if i want to use it too in a Windows 10 VM?

Hi @Mor9oth.  I see in your image it looks like you have an image stating you have the ASRock E3C246D4U type motherboard?  If so, and depending on what CPU you are running, you can have a look at this thread regarding the capabilities of that motherboard.

Intel Socket 1151 Motherboards with IPMI AND Support for iGPU

Link to post
11 minutes ago, Mor9oth said:

This is my Bios version:   So the fix (Support Intel Mehlow Refresh CPU (E-2200 Series) should be already in, right?

5.jpg.a54f4c60ae2574783984920ab86a6b68.jpg

Even though the CPU has an iGPU, I don't think the C242 chipset supports it properly for transcoding. 

 

I have an E-2288G CPU and an ASRock board (E3C246D4U) with a c246 chipset and it all works great there; however, I had to get a special BIOS from ASRock that supports the iGPU for transcoding as the regular BIOS does not because of IPMI video through the BMC.

 

I do not think the C242 chipset has this capability and that may be your problem.  At a minimum you would need a special BIOS from ASRock, but, again, I think the chipset is the problem and they might not have a BIOS that will help you out.

Link to post

Thank you @Hoopster for your reply!

If you are right - that would be really sad - because i bought this CPU because of Quick Sync. So does this issue also mean that the iGPU works nowhere in the unraid enviorment (Docker, VMs, etc.)? 😵 I ask because this iGPU is also not selectable in my VM. Is this for the same reason? Is there a way to get it work - maybe without IPMI ...

So it seems that the only solution is to buy a dedicated GPU for Hardware Acceleration. For this i would choose the Quadro P2200. Since i also want to use the GPU for VMs i would be happy for any recommendations. Something like a GPU for VMs, transcoding (Plex, Handbrake) and maybe gaming.

 

 

 

Link to post

Other Option could be to sell my motherboard:  E3C242D4U2-2T and buy the 246 Version of the Board: E3C246D4U2-2L2T. Then i could use my igpu - but how does it even perform compared to a dedicated GPU? P2000 should be stronger anyway, right?

Selling my Board would also probably mean losing Money too ... and the boards are quite simular too ... damn ... 

what would you do?

Link to post
57 minutes ago, Mor9oth said:

dedicated GPU? P2000

Don't think so. The UHD 630 (should be the same than your UHD P630) is able to transcode ~↨4x 4K or ~20x 1080p. So they have both the same performance. No joke. EDIT: Here is the proof (Intel P630 iGPU 20x 1080p vs Nvidia GTX 1080 24x 1080p)

https://forums.serverbuilds.net/t/guide-hardware-transcoding-the-jdm-way-quicksync-and-nvenc/1408/243

 

57 minutes ago, Mor9oth said:

Selling my Board would also probably mean losing Money too

I had the same problem. My last board was an expensive Supermicro A2SDi-8C+-HLN4F without iGPU. I though it would have enough power to transcode 1080p, but finally I found out that Blu-Ray rips with VC1 codec could only be transcoded with one CPU core. So I sold my Supermicro Board (with high loss) and now I'm using the Gigabyte C246N-WU2 with the i3-8100 and the difference is like night and day. Funnily it was cheaper and the new Server consumes with 10G card, 8 HDDs, one NVMe and two 32 GB ECC RAM modules in total less (19.59 watts ) then my old Board (21 watts) with only one active 1G connection, one SATA SSD and one 16GB ECC RAM module.

 

Edited by mgutt
Link to post

 

what i originally meant (power consumption) was the choice between Ryzen with p2000 and Xeon with Quick Sync. The choice fell on Xeon because it consumes less electricity in idle and overall.

Anyways ... Now i am in a pretty unhappy situation - chosing either new motherboard or GPU.

What is wrong with an server board in a server? CEC looks like it is not jet a thing. is it even usable in unraid?

Link to post

Hmm ... is it even possible to change the motherboard easily? I mean sure rebuilding isn't convenient at all. But what I mean is the license of unraid and that everything works as before in unraid (Settings (Network?), Docker, Shares, Array, etc.). This is of course the most important thing. 

Link to post

I removed both /boot/config/network* files from the flash drive and booted with the new board without problems. Maybe VMs need re-configuration if they use fixed hardware resources that aren't present anymore, but other things (docker, plugins, settings, etc) should work without any interaction as Unraid loads drivers on boot without making changes to the flash drive itself. Maybe you could even leave the network files on the flash drive. I didn't tested it. But I was surprised that it was so easy ^^

 

The license is bound to the flash drive. So no changes needed here, too.

 

P.S. you don't even need to connect the HDDs in the same order as Unraid assigns them through their serial number.

Edited by mgutt
Link to post

What does it even mean for the CPU workload to transcode with CPU only compared to iGPU (Quick Sync)?

 

Example: Here I transcode a 4K Movie to 1080P without Hardware acceleration:

 

2.jpg.4fe5fd799884003d82fffdc1f0d5ec8b.jpg

 

My CPU sounds like a Jet engine and is super high in load and temperature:

1.jpg.f0106fbabca6f1378a88f3e59d314fc2.jpg

(An notion: Since the server is in the living room - this isn't really a thing I can live with)

 

If I used the iGPU (UHD P630) for the same transcode how would this look like? I mean the iGPU is on the CPU. Would I have better temperatures and lower load? Resulting in quieter server? And what if I transcode with the P2000? The GPU should be quieter than my 4 Fans spinning up under load, right?

 

2.jpg

Link to post
49 minutes ago, Mor9oth said:

If I used the iGPU (UHD P630) for the same transcode how would this look like?

1335864601_2020-10-0413_26_00.png.40d09a13fa470899ba76c495d85c14c6.png

636240342_2020-10-0413_27_08.png.7465adea2c316b5bd532c6a2c85a15a6.png

 

My system load is high as my two unraid servers are syncing, backup to cloud is running and parity check is running on all disks. So look only on Plex's load. Nice, isn't it ;)

 

2 hours ago, Mor9oth said:

Xeon because it consumes less electricity in idle

The only reason to buy a Xeon is because you need a high power CPU with ECC RAM support. The Core i3-9350K is the fastest consumer CPU with ECC support and has "only" 4 cores (which is still enough for the most Unraid uses I think). P.S. Intel removed ECC support from all i3 and Pentium Gold with the 10th generation. It seems they want to boost Xeon sales ;)

 

And if you want to save energy you should not buy a server board with IPMI. Instead buy a workstation board. I suggest the Gigabyte C246-WU4 or the Asus WS C246 Pro.

 

2 hours ago, Mor9oth said:

CEC looks like it is not jet a thing. is it even usable in unraid?

CEC 2019 is an energy standard from California which forces the mainboard producers to use energy efficient components and deep sleep states etc. It is not needed for server boards and as far as I know not supported by Asrock boards. Gigabyte and Asus seem to support CEC 2019 on all recent consumer / workstation boards. Note: It must be enabled in the BIOS and its independent from the OS, so yes it is "supported" by Unraid.

 

Example:

Asrock C246 WSI 11.87 watts (default BIOS 12.58 watts)

Gigabyte C246N-WU2 7.36 watts (defaut BIOS = CEC 2019 disabled 10.29W)

Supermicro A2SDi-8C+-HLN4F with IPMI 22 watts (I didn't noted the default value, but it was even higher)

 

Of course both with the same components installed (Windows 10, SATA SSD, 16GB RAM, active 1G LAN, HDMI connected, analog Audio disabled, all C-States at maximum).

Edited by mgutt
Link to post
Quote

My system load is high as my two unraid servers are syncing, backup to cloud is running and parity check is running on all disks. So look only on Plex's load. Nice, isn't it 

Well, now I am pretty jealous! 😆

This is how it looks on my Dashboard: while transcoding:

3.thumb.jpg.e231073802dda43468f1d1d399afb611.jpg

 

 

Alright, so I do need a new Motherboard for my GPU ... Damn! Can't believe it! 

Any recommendations? At the moment I do have a double 10 G Connector, on the board, so this to have would be nice.  Thought an extra 10 GB PCI-E Card would suck too much energy ....  I need Micro-ATX because of my case (Silverstone CS381)

Link to post

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.