Server Version#: 1.40.2.8312
Player Version#: 4.125.1
I have been using Plex many years. Plex is a great production. My previous server is running with an Intel iGPU, and it functioning well.
Recently, I changed my server to a new one with an Intel DG1 Dedicated Graphics Card. The DG1 is an affordable card but very powerful for transcoding. But PMS doesn’t work with hardware transcoding enabled. It crashed just after pressing the play button.

// systemd service log
Mar 30 11:38:52 mediaserver Plex Media Server[949695]: ****** PLEX MEDIA SERVER CRASHED, CRASH REPORT WRITTEN: /var/lib/plexmediaserver/Library/Application >
Mar 30 11:38:52 mediaserver systemd[1]: plexmediaserver.service: Main process exited, code=killed, status=11/SEGV
// Plex Media Server.log
Mar 30, 2024 11:38:52.654 [140266613046072] DEBUG - [Req#95/Transcode] Codecs: testing h264_vaapi (encoder)
Mar 30, 2024 11:38:52.654 [140266613046072] DEBUG - [Req#95/Transcode] Codecs: hardware transcoding: testing API vaapi for device '/dev/dri/renderD128' (DG1 [Iris Xe Graphics])
Mar 30, 2024 11:38:52.655 [140266613046072] VERBOSE - [Req#95/Transcode] [FFMPEG] - libva: VA-API version 1.18.0
Mar 30, 2024 11:38:52.655 [140266613046072] VERBOSE - [Req#95/Transcode] [FFMPEG] - libva: User requested driver 'iHD'
Mar 30, 2024 11:38:52.655 [140266613046072] VERBOSE - [Req#95/Transcode] [FFMPEG] - libva: Trying to open /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64/iHD_drv_video.so
Mar 30, 2024 11:38:52.656 [140266613046072] VERBOSE - [Req#95/Transcode] [FFMPEG] - libva: Found init function __vaDriverInit_1_18
Mar 30, 2024 11:38:52.794 [140266613046072] DEBUG - [Req#95/Transcode/JobRunner] Job running: /usr/lib/plexmediaserver/CrashUploader "--directory=/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Crash Reports/1.40.2.8312-b1c79904d" --version=1.40.2.8312-b1c79904d --platform=Linux "--platformVersion=22.04.4 LTS (Jammy Jellyfish)" --serverUuid=xxx --userId=xxx --sentryUrl=xxx --sentryKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --vendor=Ubuntu --model=x86_64 --device=PC --sessionStatus=crashed --sessionStart=1711798712 --sessionDuration=20
After conducting some research, I believe this problem may be caused by an incompatible Intel media driver(iHD_drv_video.so) bundled with Plex. Here are some details, and I hope the development team can provide a compatible version.
DG1 is a special card , it is incompatible with the i915 driver from Linux mainline kernel. It is only supported by a DKMS module from Intel (Intel call it out-of-tree driver or OOT). It officially supports certain specific Linux distribution. Full introduction can refer to Intel’s document.
Follow the instructions. My server is running Ubuntu Server 22.04.4 LTS with kernel version 5.15 and all the necessary packages from Intel’s repository. Now, ffmpeg can efficiently perform hardware transcoding. Both Plex and Jellyfin cannot function properly because the transcoder load bundled iHD_drv_video.so first. But Jellyfin can be repaired by simply deleting its driver. After that, Jellyfin’s ffmpeg load system iHD_drv_video.so.
rm -rf /usr/lib/jellyfin-ffmpeg/lib/dri
I can see some load from the intel_gpu_top utility.
The same operation didn’t work for PMS. After deleting PMS’s iHD_drv_video.so , Plex Transcoder loaded the system one, but there was an incompatibility issue with Plex Transcoder. Plex compiles with different dynamic library environments. Also, the iHD driver needs to match the version of Libva and GmmLib. As a regular user, I can’t build the same environment as the Plex dev team.
The only way is the development team compile a correct version. The key clue is Intel’s official description from the “Intel Media Driver Github Readme” , quoted below:
Media-driver requires special i915 kernel mode driver (KMD) version to support the following platforms since upstream version of i915 KMD does not fully support them(pending patches upstream). To enable these platforms, it requires to specify ENABLE_PRODUCTION_KMD=ON (default: OFF) build configuration option.
DG1/SG1
ATSM
I guess the development team keeps this compile option off by default. Perhaps the development team could turn this option ON for all users or creating a special version for DG1 users.
