Intel Media Driver Update for Plexserver on Linux?

I’m wondering if and when Plex for Linux will update the included Intel Media Driver which is deliverd with plexserver, to the latest version to support the new Intel graphics cards (Battlemage).

Intel Video Acceleration (VAAPI)
Intel Media Driver 2024Q4 Release - 24.4.4

> Supported Platforms
> 
>     BDW (Broadwell)
>     SKL (Skylake)
>     BXTx (BXT: Broxton, APL: Apollo Lake, GLK: Gemini Lake)
>     KBLx (KBL: Kaby Lake, CFL: Coffe Lake, WHL: Whiskey Lake, CML: Comet Lake, AML: Amber Lake)
>     ICL (Ice Lake)
>     JSL (Jasper Lake) / EHL (Elkhart Lake)
>     TGLx (TGL: Tiger Lake, RKL: Rocket Lake, ADL-S/P/N: Alder Lake, RPL-S/P: Raptor Lake)
>     DG1/SG1
>     Alchemist(DG2)/ATSM
>     MTLx (MTL: Meteor Lake, ARL-S/H: Arrow Lake)
>     LNL (Lunar Lake)
>     BMG (Battlemage)

It would be great if we could finally use the card. Here, the Alchemist cards, like the A380, are either no longer readily available or only sold second-hand at exorbitant prices.

Maybe one of the developers knows something and can help me out. I already have the B580 in my server and would not downgrade just for Plex.

Thanks you

The Arc GPUs will be supported at some point.

We just finished adding HEVC support ( experimental at present )

We will be completing the full upgrade of the FFMPEG core.

At that time, we’ll be picking up support for all the then-current CPUs & GPUs it supports.

At present, the cards do function if you install the drivers yourself.

Thank you very much for your answer.
Can you guide me a little?
That means I complile the intel media driver myself and install it, or probably I have to replace the VAPI etc. in the Plex directory with the compiled data. Is that correct?

I replaced /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64/iHD_drv_video.so with the self-compiled /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so, but something is still not working:

[FFMPEG] - libva: dlopen of /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64/iHD_drv_video.so failed: Error relocating /usr/lib/x86_64-linux-gnu/libstdc++.so.6: arc4random: symbol not found

Any ideas on what might be causing this or how to fix it?

The driver files we use are not compiled against glibc().
We use MUSL for speed, size, and portability across multiple platforms

Anything you compile will not be compatible, using glibc, will not be compatible.

That said, replacing the iHD driver won’t work because the library entry points won’t match

Regarding a time frame –

  1. HEVC work is just now public experimental (but largely working)
  2. HEVC must be stabilized for container environments (ongoing now)
  3. FFMPEG upgrade must be completed. (almost complete - HEVC dependent)

I’m sorry but this is a situation where you need to wait a bit longer.
We’re almost there but not quite yet

1 Like

I had assumed that it might be sufficient to compile and replace the .so files from the Intel Media driver itself, as your sentence ‘At present, the cards do function if you install the drivers yourself.’ seemed to suggest.

Alright, at least I know there’s nothing I can do except wait.
If you need someone to test with an Intel B580 or a test system, just let me know.

Fingers crossed that you complete the upgrade soon and without any issues!

Thank you, ChuckPa, for your help and clear support in resolving the issue and providing information on the current status.

For all other people which an intel B580:
If you have an Intel B580 (Battlemage) with Kernel 6.11/6.12+, this card still does not work with Plex. Battlemage does not support the i915 driver but only the Xe driver, which is not yet included in the packages provided by Plex.

Even manually replacing the .so files from the Intel Media drivers does not help.

We will have to keep waiting."

1 Like

Please do give us the time.

Intel announced its Arc B580 and B570 “Battlemage” GPUs on December 3, 2024. The Arc B580 was released on December 13, 2024, and the B570 was released on January 16, 2025.

Not a lot of time to get support completed but we will get there.

Absolutely fair.

That being said, the intel-media-driver release that enabled Battlemage (and Lunar Lake) support, 24.3.4, was released on 2024-10-24, and Intel has an official quarterly release cadence. These platforms could be supported by Plex prior to their availability to customers.

@lmcc3

Even if integrated into PMS, how would it be tested without a card ?
There is nothing to gain by a blind compilation and release.

Even if integrated into PMS, how would it be tested without a card?

I don’t expect Plex to test and validate against every single card on the market. I’d be honestly surprised if Plex did test against every single card that is supported by the various drivers used in the transcoder y’all build.

That being said, Plex could foster a relationship with Intel and other hardware vendors to ensure early access to new or about-to-be-released hardware to test and validate against said hardware, or fake the cards via software. Both are relatively common practices, though I’m not sure what Plex’s relationships with hardware vendors look like. At my job we often build software fakes or effective software-level emulated hardware based on expected or modeled behavior from engineering samples for hardware prior to having physical hardware to test against. It’s not useful for performance validation but it’s enough to ensure integration and functional behavior is validated.

There is nothing to gain by a blind compilation and release

Except for Lunar Lake and Battlemage support. Lunar Lake released prior to the quarterly driver release in October, so building against the quarterly release would’ve enabled support for Lunar Lake based Plex servers to have hardware encode/decode. And building against that same driver release would’ve enabled support for Battlemage on launch day, even if the above work had not been done to validate such functionality.

@lmcc3

The Intel Arc GPUs aren’t currently supported natively by PMS.

Supporting those cards isn’t as simple as updating the Intel Media Driver.
The card client-side drivers must also be included and PMS must be able to select & communicate properly with them.
( like PMS currently has for Nvidia and all other VAAPI-capable cards)

I don’t know definitively when but it makes sense to add that support for Arc GPUs when FFMPEG is upgraded.

I suspect the effort will add ALL Intel Arc GPUs at once. (Again, not a commitment but it is a logical assumption)

intel-media-driver is the userspace VAAPI driver for Intel GPUs (since Broadwell at least), i.e. it provides iHD_drv_video.so . Older GPUs are supported by the intel-vaapi-driver found at GitHub - intel/intel-vaapi-driver: VA-API user mode driver for Intel GEN Graphics family which provides i965_drv_video.so.

The only other things I can legitimately think of that may complicate this any is if Plex uses intel-compute-runtime, i.e. the Intel userspace OpenCL drivers, to leverage OpenCL to provide tonemapping functionality; and/or if Plex is using Intel’s libvpl and the VPL/VPP interfaces to do the tonemapping via VPL. I suspect that the Battlemage cards would work fine if Plex is using the VPL interfaces and chose to only update the VAAPI driver, but I haven’t confirmed that myself - but if Plex is using OpenCL then it would definitely be required to update both the VAAPI driver and the compute runtime to versions that support the Battlemage cards. I couldn’t find reference to the intel-compute-runtime in the Plex transcoder though, but also didn’t look too hard for it after I found that the VAAPI driver was too old to support the new cards.

Anyways, the Intel Arc Alchemist (A-series) cards are currently supported by Plex, as the intel-media-driver VAAPI driver version that the latest Plex server is built against does explicitly support them, and there are plenty of reports of the Alchemist cards working (including, presently, one of the top posts on the Plex subreddit with a user doing 6 simultaneous 4k->4k HEVC transcodes on an A380, which is just darn impressive frankly). It’s just the Arc Battlemage (B-series) GPUs that aren’t supported yet, and it’s exactly the intel-media-driver, AKA the VAAPI driver, AKA the “client-side drivers” that need to be updated.

Thanks for the responses and discussions. I hope to see this fixed in the next Plex release - if there’s anything else I can do to help provide some guidance on this, please don’t hesitate to ask.

1 Like

Will the transcoder upgrade also update intel-compute-runtime? I’m seeing (along with others) crashes with hardware transcoding on the A380 when reaching end of file while transcoding 4K HDR content.

As a result on-demand hardware transcode works fine (since the user is done watching the media by the time the transcoder crashes), but optimized versions fail because the transcoder crashes (core dumped) when attempting to write the output file:

Output #0, mp4, to '/data/media/transcodes/Videos/Plex Versions/Optimized for TV/.inProgress/4k-hevc-hdr-test-001 (2025).mp4.18384':
  Metadata:
    encoder         : Lavf59.20.101
  Stream #0:0(eng): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), vaapi(tv, bt709, progressive, topleft), 1920x1080 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 11988 tbn
    Metadata:
      encoder         : Lavc59.25.100 h264_vaapi
    Side data:
      DOVI configuration record: version: 1.0, profile: 7, level: 6, rpu flag: 1, el flag: 1, bl flag: 1, compatibility id: 6
  Stream #0:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), s16p, 640 kb/s (default)
  Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, delay 1024, 768 kb/s
    Metadata:
      encoder         : Lavc59.25.100 aac
  Stream #0:3(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), s16p, 448 kb/s
[hevc @ 0x7f5033675200] Skipping NAL unit 63
...
[hevc @ 0x7f5033674480] Skipping NAL unit 63
No more output streams to write to, finishing.
[mp4 @ 0x7f5032157f80] Starting second pass: moving the moov atom to the beginning of the file
[AVIOContext @ 0x7f5019c5cb40] Statistics: 117462110 bytes read, 0 seeks
frame= 1446 fps= 95 q=-0.0 Lsize=  114775kB time=00:01:00.33 bitrate=15582.9kbits/s speed=3.97x
video:101477kB audio:13232kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.057755%
Input file #0 (/data/media/transcodes/Videos/4k-hevc-hdr-test-001.mkv):
  Input stream #0:0 (video): 1446 packets read (406799697 bytes); 1446 frames decoded;
  Input stream #0:1 (audio): 1823 packets read (4666880 bytes);
  Input stream #0:2 (audio): 72372 packets read (38051138 bytes); 567 frames decoded (2894880 samples);
  Input stream #0:3 (audio): 1823 packets read (3266816 bytes);
  Input stream #0:4 (subtitle): 0 packets read (0 bytes);
  Input stream #0:5 (subtitle): 0 packets read (0 bytes);
  Input stream #0:6 (subtitle): 0 packets read (0 bytes);
  Input stream #0:7 (subtitle): 0 packets read (0 bytes);
  Input stream #0:8 (subtitle): 0 packets read (0 bytes);
  Input stream #0:9 (subtitle): 0 packets read (0 bytes);
  Input stream #0:10 (subtitle): 0 packets read (0 bytes);
  Input stream #0:11 (subtitle): 0 packets read (0 bytes);
  Input stream #0:12 (subtitle): 0 packets read (0 bytes);
  Input stream #0:13 (subtitle): 0 packets read (0 bytes);
  Input stream #0:14 (subtitle): 0 packets read (0 bytes);
  Input stream #0:15 (subtitle): 0 packets read (0 bytes);
  Input stream #0:16 (subtitle): 0 packets read (0 bytes);
  Input stream #0:17 (subtitle): 0 packets read (0 bytes);
  Input stream #0:18 (subtitle): 0 packets read (0 bytes);
  Input stream #0:19 (subtitle): 0 packets read (0 bytes);
  Input stream #0:20 (subtitle): 0 packets read (0 bytes);
  Input stream #0:21 (subtitle): 0 packets read (0 bytes);
  Input stream #0:22 (subtitle): 0 packets read (0 bytes);
  Input stream #0:23 (subtitle): 0 packets read (0 bytes);
  Input stream #0:24 (subtitle): 0 packets read (0 bytes);
  Input stream #0:25 (subtitle): 0 packets read (0 bytes);
  Input stream #0:26 (subtitle): 0 packets read (0 bytes);
  Input stream #0:27 (subtitle): 0 packets read (0 bytes);
  Input stream #0:28 (subtitle): 0 packets read (0 bytes);
  Input stream #0:29 (subtitle): 0 packets read (0 bytes);
  Total: 77464 packets (452784531 bytes) demuxed
Output file #0 (/data/media/transcodes/Videos/Plex Versions/Optimized for TV/.inProgress/4k-hevc-hdr-test-001 (2025).mp4.18384):
  Output stream #0:0 (video): 1446 frames encoded; 1446 packets muxed (103912079 bytes);
  Output stream #0:1 (audio): 1823 packets muxed (4666880 bytes);
  Output stream #0:2 (audio): 2828 frames encoded (2894880 samples); 2829 packets muxed (5616283 bytes);
  Output stream #0:3 (audio): 1823 packets muxed (3266816 bytes);
  Total: 7921 packets (117462058 bytes) muxed
[AVIOContext @ 0x7f50333cb400] Statistics: 234991976 bytes written, 4 seeks, 901 writeouts
Abort was called at 134 line in file:
/home/runner/actions-runner/_work/plex-conan/plex-conan/.conan/data/intel-compute-runtime/24.17.29377.6-6/plex/main/build/96953c44c3aa1e3d81776274f854d01e9cbd0473/compute-runtime-24.17.29377.6/shared/source/utilities/reference_tracked_object.h
Aborted (core dumped)

This is on a 1min test file segment I snipped with mkvmerge from the original media which was 4K HEVC+DoVi video, TrueHD Atmos audio, and PGS subtitles.

It looks like compute-runtime-24.17.29377.6 is compiled into the Plex Transcoder binary so I can’t test with an updated version, but that version is quite old.

The crash doesn’t occur on 4K non-HDR content making me think this is tonemapping-related.

From comments here it seems like they’re working on an upgrade to their transcoder across the board, so I suppose we’ll just wait and see. There’s no provided ETA on it yet.

I am wondering if there is any update? I am patiently waiting for transcoding support with my intel B580.

5 Likes

Same here

1 Like

Can we get an update on the timeframe? It’s now June, it’s been a little over 3 months?

2 Likes

Would very much like to know about a date for b580 support.

Plex never provides dates. Here’s the roadmap.

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