Corrupted video output stream with hardware transcoding

Server Version#: 1.18.2.2058 (QNAP NAS)
Player Version#: 7.25.1.14216 (Android Mobile)

Since version 1.18.1.1973 hardware transcondig fails regardless of the client device (Android TV, Android Phone, Chromcast Ultra, Windows 10) used.

As a workarround I can disable the hardware transcondig on the PLEX Media Server. But this results in a very high CPU load on my QNAP 453Be NAS (Intel J3455 HD Graphics 500)

Changing the transcoder settings doen’t make any diffrence. So for the moment I have downgraded PLEX Media Server from version 1.18.2.2058 to version 1.18.0.1944.

1 Like

Known issue, correction to the Intel iHD driver being tested.

  1. SSH into the QNAP
  2. cd /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/lib/dri
  3. Remove the file: iHD_drv_video.so
  4. Restart PMS
1 Like

Hi ChuckPA,

Thanks for your quick reply. And I can confirm that removing the iHD_drv_video.so file and restarting the PMS solves the hardware transcoding issue.

Thanks,
Bart

Hi All.

Same problem on Synology Diskstation DS718+ also with J3455 processor.
Removed ./volume1/@appstore/Plex Media Server/lib/dri/iHD_drv_video.so and restarted PMS with success.
No corrupted video output anymore.

Hopefully fixed in coming version.
Sander.

Identical issue here with the DS218+

The above users post resolved the issue, though I renamed it .bak rather than actually deleting the file

@skaldenhoven: thanks for the tip!
I have a DS218+ and have the same issue with hardware transcoding.
I looked, but I couldn’t find a path and file ./volume1/@appstore/Plex Media Server/lib/dri/iHD_drv_video.so on my Synology.

There’s no /Plex Media Server/ inside /@appstore/…

Check whether you might have a /volume1000 or another one.
Or are you running plex from a Docker container?

1 Like

Those with multiple volumes can always use the generic path:

"/var/packages/Plex Media Server/target/lib/dri/iHD_drv_video.so"
admin@moesern's password: 
admin@moesern:~$ cd "/var/packages/Plex Media Server/target/lib/dri"
admin@moesern:/var/packages/Plex Media Server/target/lib/dri$ 
2 Likes

@skaldenhoven: 2x negative. Thanks though!
@ChuckPa ChuckPA: Thank you very much! I found the file indeed in that path, but preferred to rename the file to .bak (After using sudo -i to gain root access)

Am again able to run videos in Plex on my iPad with the “hardware acceleration” activated. Thanks!

Please be advised:

If you update the server software again before we fix Intel’s bug, you’ll need perform this step again.

This is a per-install work around. Sorry but the best we can do for the ApolloLake CPUs without killing off all of the -9xxx desktop CPUs.

Came across the same error. Tried with latest version PlexMediaServer-1.18.3.2156-349e9837e-x86_64 on my QNAP with Intel J3455. The workaround is doing well :+1: But I would appreciate a more permanent fix :wink:
But for now: Merry Christmas

Does this bug exist on Windows as well? Because Windows HW transcoding with quicksync is hot trash (Skylake). Here’s a 720p source file (~2.1mbps) being transcoded to 720p/2mbps.

Windows 10 1809 x64
PMS 1.18.4.2164
Intel Core i7-6770HQ

Don’t know how Windows does it but from what I know, the entire transcoding engine access is different due to Windows device management.

Why it transcodes as it does is best asked of someone who knows Windows. .

Addressing the question the CPU bug; it only impacts ApolloLake CPUs. The i7-6770 is a SkyLake

Addressing the question the CPU bug; it only impacts ApolloLake CPUs. The i7-6770 is a SkyLake

this is not true, all Goldmont CPUs have this problem - this includes Gemini Lake as well as Apollo Lake and some Low-Volt Mobile Processors. I was able to reproduce this issue (extreme low quality transcoding) on a ASRock J4205 (Apollo Lake), a J4105 (Gemini Lake) as well as on a DellXPS Notebook with a 6700HQ - but tbh i only tested it with Linux as OS. Additionally the both Lake CPUs display the completly destroyed video output stream on transcoding with subtitles. Rolling back to plex .16 fixes this issue, so it looks like it’s time to roll back the transcoding engine afap.

1 Like

@wmchris

Thank you for that info. I stand corrected!

Little follow up:

the bad transcoding quality has something to do with the environment. After updating the whole va-api subsystem from linux to at least libva2.4.0, the overall quality of the i965 driver is as good as it was on plex 1.16.

Obviously this only helps people who can upgrade their packages - synology and qnap users will still have this issue.

iHD is still broken on all my machines using Intel Quick Sync and will result in the reported corrupted stream. Even with iHD 19.4.pre2

(if you use ubuntu - upgrade to Disco using do-release-upgrade, this includes the new vaapi version)

@wmchris

Thanks for that. PMS uses its own libs. It won’t see the system-installed vaapi libs.

this cant be entirely true. i was unable to load my compiled version of iHD inside plex, until i updated the environment. Also i cant get HW Accel to work if the environment is not installed. At some point plex must use it - or if both exist the system installed versions have a higher priority?

Go look in /usr/lib/plexmediaserver/lib. you’ll see libva.so.2 and libva-drm.so.2

RPATH is set in the binaries themselves to look there.

Do you have a config which preempts RPATH ?

i never changed any config, but this particular installation exists since HW-Accel was in closed beta. So maybe some legacy configuration settings are left in my system.

root@plex:/usr/lib/plexmediaserver/lib/dri# ldd i965_drv_video.so 
	linux-vdso.so.1 (0x00007ffeb6df5000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8b5bcd5000)
	libdrm_intel.so.1 => /usr/lib/plexmediaserver/lib/dri/./../libdrm_intel.so.1 (0x00007f8b5bab5000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8b5baaf000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f8b5b960000)
	libva.so.2 => /usr/lib/plexmediaserver/lib/dri/./../libva.so.2 (0x00007f8b5b73c000)

it is linked against the plex built in ones. Still if i uninstall the libva package, hw transcoding stops.