PMS HW transcoding on Intel NUC 10 (BXNUC10I7FNH1) not workin

Server Version#: 1.21.0.3616
Player Version#: Any player but I’m testing with Plex Web 4.43.4 now

PMS debug logs: (File removed)

So I have two PMS servers with similar config on a Debian 10 OS. One is on a ASRock J5005-ITX system and one on an Intel NUC 10 system. Both systems support HW transcoding through Intel Quick Sync.

For the J5005 system:

  • Using the LSIO docker container, HW transcoding worked fine but had artifacts. I had to apply this workaround to force PMS to solve the issue by forcing the server to use the i965 driver.
  • I then migrated from using the LSIO container to simply installing Plex into the native Debian Linux system. I used the same server data that are now owned by plex:plex. I tested HW transcoding and it is still working properly.

For the Intel NUC system:

  • This is a fairly new system that I just got.
  • Using the same LSIO container, HW transcoding never worked. Since I was planning on installing to the native Debian Linux anyway, I did not troubleshoot this problem in the container.
  • I migrated using the same exact steps from the LSIO container to the native install on the Debian Linux system. HW transcoding did not work.
  • I applied the same i965 driver workaround and restarted the plexmediaserver service. HW transcoding still doesn’t work.

I attached the PMS logs for the Intel NUC system above. Can you please help me out here? Thanks.

@wingmanz @ChuckPa

  1. We know the J4xxx CPUs are supported. We have NO data about the J5xxx CPUs. None were tested (none available)

  2. The transcoder (below) is attempting to use the i965 driver – which that CPU does not use in the same manner. This is why the ihd_drv_video.so is required. It is this way for all -9xxx and above CPUs. Please remove the VaapiDriver="i965" from Preferences.xml.

  3. When migrating, were the beignet and opencl required packages installed?

Nov 29, 2020 12:40:46.125 [0x7ff5267fc700] DEBUG - [Transcode] Subtitles: Found a candidate subtitle language [eng] for a foreign film
Nov 29, 2020 12:40:46.125 [0x7ff5267fc700] DEBUG - [Transcode] Audio Stream: 183662, Subtitle Stream: 183663
Nov 29, 2020 12:40:46.128 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: testing h264_vaapi (encoder)
Nov 29, 2020 12:40:46.128 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Nov 29, 2020 12:40:46.130 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - libva: /usr/lib/plexmediaserver/lib/dri/i965_drv_video.so init failed
Nov 29, 2020 12:40:46.130 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
Nov 29, 2020 12:40:46.130 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Nov 29, 2020 12:40:46.130 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Nov 29, 2020 12:40:46.131 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Nov 29, 2020 12:40:46.131 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - Cannot load libcuda.so.1
Nov 29, 2020 12:40:46.131 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - Could not dynamically load CUDA
Nov 29, 2020 12:40:46.131 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Nov 29, 2020 12:40:46.131 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: testing h264 (decoder) with hwdevice vaapi
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - libva: /usr/lib/plexmediaserver/lib/dri/i965_drv_video.so init failed
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: testing h264 (decoder) with hwdevice nvdec
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - Cannot load libcuda.so.1
Nov 29, 2020 12:40:46.132 [0x7ff5267fc700] ERROR - [Transcode] [FFMPEG] - Could not dynamically load CUDA
  1. I can confirm that my J5005 CPU system is working just fine with HW transcoding.

  2. Well, I already tested without the modification and it was not working. Either way, I still removed the VaapiDriver=“i965” from Preferences.xml as you suggested, rebooted the server, and it’s now working! I don’t know what was different when I was unsuccessful before the workaround. Would you be able to see that in the logs?

  3. Yes, it had two warnings regarding those packages when I installed PMS. So I uninstalled PMS, installed those two package dependencies, and reinstalled PMS to make sure.

Is it possible that during install the Preferences.xml file already had that modification by default?

  1. Thank you for the J5005 data

  2. I saw your logs were still calling out the i965 so I suspect Plex might still have been running when Preferences was edited (it happens – i’ve done that too… haha)

  3. You could have installed them after installing Plex… You would only need to restart
    Plex after the packages are in. It will detect them at startup

  4. No, I do not write VaapiDriver="i965" into anyone’s default config. That would be presumptuous of me.

Ok gotcha! Oh well, at least it’s working now.

As for the J4xxx CPU’s do you know which driver are they specifically using for proper support? For my J5005 CPU, I remember forcing it to use the i965 driver only because of the artifacts issue when hw transcoding. I’m not sure if that problem is already solved and if I can have it use the default ihd driver now.

J4xxx CPUs also use the iHD

At this point, with all Intel driver corrections in place, no artificial manipulation is needed. :muscle: :slight_smile:

Good to hear :slight_smile:

I removed the modification on my J5005 system and tried playing a media file using the Plex Web just now. I’m only seeing a loading circle with the video not playing at all. But I see in the PMS dashboard that it is hw transcoding (because I forced it to convert 4K to 1080p, to test).

(File removed)

I tried “Wreck-It Ralph” a couple of times. Could this be driver-related?

We get one working and you now want to give me a headache with another CPU class (J5xxx) ? :scream:

:rofl:

I will speak to the team when they’re back in the office Monday

PC hardware is a never ending upgrade routine :grinning: Ok, thanks for the help. Please keep me posted.

It seems like the problem is just random and only when using the Plex Web. I tried playing the same media now and they work. I have to test more though.

I have one solution to it… which you’ll probably NOT like

STOP UPGRADING YOUR CHIT!!

:rofl:

Hahaha. There’s always that itch to upgrade, you know how it is, but I get your point.

@ChuckPa

Would there be any reason why hw transcoding only works for some files and not all? I just noticed this today which explains my earlier posts in this thread why I thought hw transcoding was not working.

image

image

Here are the PMS debug logs:

(File removed)

These were played just now (12/8/2020 at around 11:40AM to 11:47AM)

It looks like it started with hw transcoding and failed back to software transcoding because of these errors:

Dec 08, 2020 11:43:55.501 [0x7fdef77fe700] ERROR - [Transcoder] [AVHWDeviceContext @ 0x2569840] No matching devices found.
Dec 08, 2020 11:43:55.502 [0x7fdef77fe700] ERROR - [Transcoder] [Parsed_hwmap_2 @ 0x25c0f40] Failed to created derived device context: -19.
Dec 08, 2020 11:43:55.502 [0x7fdef77fe700] ERROR - [Transcoder] [Parsed_hwmap_2 @ 0x25c0f40] Failed to configure output pad on Parsed_hwmap_2
Dec 08, 2020 11:43:55.505 [0x7fdef77fe700] ERROR - [Transcoder] Error reinitializing filters!
Dec 08, 2020 11:43:55.506 [0x7fdef77fe700] ERROR - [Transcoder] Failed to inject frame into filter network: No such device
Dec 08, 2020 11:43:55.506 [0x7fdef77fe700] ERROR - [Transcoder] Error while processing the decoded data for stream #0:0

Looks to be similar to this thread here and it’s because of the new HDR to SDR setting. If you remember, I do have the beignet and opencl installed properly.

Please forgive my absence but I’m largely dedicated to DSM 7 effort right now. (Beta launched today).

From what I’ve read, the Comet Lake CPUs need updates to the X-server and a few other system libraries.

It’s unique to them. Engineering is aware but there are (somewhere in the forum) instructions for updating docker containers to work with CometLake CPUs.

No worries. Ohh nice, didn’t know about DSM 7. That’s pretty exciting for my Synology NAS when the stable is launched :slight_smile:

I did see those workaround for building the beignet driver for this. Would that be applicable for Debian though?

Building the Beignet driver is applicable to all Debian-based systems (Debian & Ubuntu).

DSM 7 is going well. I hesitate saying more at the risk of jinxing it :slight_smile:

I’m running Plex in docker and for me to get HW transcoding and tone mapping to work I have to install the following in the docker container and make sure the container has access to /dev/dri/.

sudo apt install vainfo intel-media-va-driver-non-free -y

and

@skijbal

  1. If you use the Linuxserver.io Plex package, it already contains all the modules
  2. You only need map the device --device into your container definition.

I don’t do well with docker and I got it the first time :smiley:

[chuck@lizum ~.502]$ cat dockerplex 
sudo docker run \
-d \
--name plex \
--network=host \
-e TZ="EST" \
-e ADVERTISE_IP="http://192.168.0.13:32400/" \
-e PLEX_UID=1027 \
-e PLEX_GID=1027 \
-e PUID=1027 \
-e PGID=1027 \
-h lizum-docker \
-v /home/dockerplex:/config \
-v /home/dockerplex/tmp:/tmp \
-v /home/dockerplex/transcode:/transcode \
-v /vie:/data \
--device=/dev/dri:/dev/dri \
plexinc/pms-docker
[chuck@lizum ~.503]$ 

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.