Anyone have been able to HW transcode on an Intel NUC 11 (Iris Xe)?

Now that most of the issues seem to have been resolved (minus the tonemapping thing): Which NUC 11 model makes the most sense for a Plex server? I just visited Intel’s website and there are dozens of different models, it looks like.

I am not sure about Intel branded ones but I went for the Chinese alternative that had the 1165G7, link below. This thing was doing over ten 1080p transcodes and didn’t even break a sweat. It even did three 4k transcodes while barely using any power from the wall, less than 20 watts total and cpu/gpu load was barely measurable it was so low. The only thing is I had to change was the thermal paste and that improved the temperatures significantly.

Yes, any 11th gen NUC will do fine for Plex use, a 1135G7 / 1165G7 is perfect for that, it’s even a bit overkill given my tests but at least it’s not taking a lot of power from the wall.

I’ve been able to maxout CPU / GPU usage at 13 4k (slightly compressed) → 720p simultanious transcoding sessions, a 14th one and buffer starts. Crazy.

Just make sure you have set the CPU mode to “Performance” in the BIOS (if supported)

Was that with the 1135 (i5) or the 1165 (i7, I think?)?

1135G7 (i5), also it might be because I’m using slightly compressed 4k stuffs, I don’t know if the result will be similar on Remux files. Gonna do some tests

Just an FYI, for those running Ubuntu 20.04… the easiest deploy I’ve seen so far is with the OEM kernel (5.10). It contains most of what you need to make this work without adding any PPA.

apt update
apt install linux-oem-20.04 vainfo intel-media-va-driver-non-free

You can optionally add intel-gpu-tools if you want the gpu top visualization.

So I finally jumped ship and got me a NUC11 with i5 (NUC11PAHi5). I installed Ubuntu 20.04 with HWE kernel and preparing to install Plex.

What do I need to install to make hardware transcoding and tone mapping work? I read through the entire thread again and I am pretty confused. I see people mention different thing, i915 this, beignet that, Intel Compute here, non-free-driver there.

Would appreciate any help :slight_smile:

Thanks!

It should be plug and play, try enabling HW transcoding and check HDR tone mapping.
To be sure that everything goes well update some crutial drivers needed for HDR stuffs

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

And do this trick to enable low power encoding, it’s supposed to be enabled by default on Linux but it’s not for some reasons
Intel graphics - ArchWiki (archlinux.org)

Edit : This is from turfrider on this thread

echo “options i915 enable_guc=2” >> /etc/modprobe.d/i915.conf
modprobe i915

And restart your server.

Play a 4k file and then transcode it to 720, if there is no artifact, then go to dashboard and check CPU usage, a single 4k transcode hovers around 15-25% CPU usage if hardware is involved.

1 Like

Thank you, Sir. I am going to give this a shot tomorrow.

I guess I can disregard all the “intel compute package”, “non-free-drivers” etc. then?

To be honest I didn’t installed them and it seems to works fine even without them

1 Like

i just installed a 20.04.3 on a i5-1135g7
Transcoding a fat 4K HDR with tonemapping → 720p take 10% CPU (during buffering), it’s 3% after that
Plex installer warn me about some package, as i didn’t understand if it was mandatory i installed them doing :

wget https://github.com/intel/compute-runtime/releases/download/21.47.21710/intel-gmmlib_21.3.3_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.9389/intel-igc-core_1.0.9389_amd64.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.9389/intel-igc-opencl_1.0.9389_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.47.21710/intel-opencl-icd_21.47.21710_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/21.47.21710/intel-level-zero-gpu_1.2.21710_amd64.deb

sudo dpkg -i *.deb

did nothing else.

but don’t know if it was useless

1 Like

Thanks. I wonder if there is a repo for these so we can keep them updated.

Did you try HDR tonemapping with this setup?

Hello ChuckPa,

So a fresh install of 1.25.0.5282 on ubuntu 20.04.3 / Tiger lake detect oc1-icd-libopencll missing and install it.
The 6 others warnings about intel/compute-runtime are mandatory and have to be adress manually , is that correct ? If yes do we need to manually update them time to time ?
tks

1 Like

So it looks like tone mapping is working fine, but how do I tell whether the server is doing it in software or hardware?

Which log should I consult?

Tone Mapping in software would mostly eat all of CPUs ressources with a single transcode.
Also I’m curious, I have no idea what Plex use for transcoding on Linux, I have to guess it use VAAPI over QSV ?

The non-free drivers add some additional HEVC codecs that have different licensing requirements. You can check the difference with vainfo before and after the installation.

Details from Intel media-driver around the package differences:

  • Full Feature Build is default driver build, which supports all feature by hardware accelerator and close source shaders(media kernel binaries). Ubuntu intel-media-va-driver-non-free package is generated from this build type.
  • Free Kernel Build , enables fully open source shaders(media kernels) and hardware features but the features would be limited. Ubuntu intel-media-va-driver package is generated from this build type.
1 Like

On the latest public version I was able to HW transcode with tone mapping disabled. Enabling tone mapping forced the transcoder back onto software. I’m running an i5-11500

That was fixed by installing the dependencies in this post 416 (Anyone have been able to HW transcode on an Intel NUC 11 (Iris Xe)? - #416 by gdesainth_yahoo_fr).

Hope that helps someone else!

This appears to have worked for me too on the latest public version following the same steps as @Cadellin (Thanks!). Plex Media Server running in Docker was able to hardware transcode but not tone map, but when I installed Plex directly into Ubuntu tone mapping started working as well. Will keep testing over the holidays, but after 20 minutes it’s transcoding and tone mapping 4K HDR to 1080p SD with minimal CPU effort while intel-gpu-top shows the render and video engines jumping in and out around 20% each once the buffer cache is full.

Quick edit: it seems to balk at multiple instances of 4K transcodes. The GPU acts as if it’s buffering but the second or third streams never play on the client’s end

Hmmm, dmesg throws me this error regarding Plex Transcoder

[130315.071205] Plex Transcoder[129746]: segfault at 0 ip 00007fe2f9a2e48e sp 00007ffed503adf0 error 4 in libigdfcl.so.1.0.9441[7fe2f99eb000+319000]

Guess it’s related to HDR tone mapping ?

Edit : updating compute-modules seems to get rid of it, maybe I was using a very old driver.

I’m running the linuxserver.io plex docker image and tone mapping doesn’t work for me on an i5-1135g7. I had to run these commands inside the docker image to get it working, which obviously isn’t ideal. It looks like there’s an open issue on the linuxerver.io GitHub repo to hopefully resolve this issue.