See Hardware/GPU/Quicksync transcoding broken on Beta 1.43.1.10540 - #118 by chris_decker08
You might also need the Ubuntu hwe extensions (updated kernel).
https://ubuntu.com/kernel/lifecycle
See Hardware/GPU/Quicksync transcoding broken on Beta 1.43.1.10540 - #118 by chris_decker08
You might also need the Ubuntu hwe extensions (updated kernel).
https://ubuntu.com/kernel/lifecycle
When it will be released to PlexPass Beta?
Can you build an image with the fix and make it available on https://hub.docker.com/r/plexinc/pms-docker ?
Thanks for the instructions, I installed it for a bit ran some tests with hevc transcoding and went back to beta version.
I am on 270k plus and still noticed buffering when transcoding high bitrate remuxes with .srt to hevc, so having hevc transcode instead of h264 doesnāt help me.
The automatic subtitle burn in is done on the cpu on a single core even though there are 24 cores available, but thatās another topic entirely.
Well, Iād get all the paying customers a fix as soon as possible⦠but Plex couldnāt care less about thatā¦
I hate how plex is updating QNAP or in my case the LG webOS-App too
But now in this case, I have to defend them!
They have a solution for now and chris_decker08 announced it to be in the next update and there will be an unsigned version for QNAP. There is something called like due process⦠you wouldnāt want your new car to be delivered to you e.g. without seats, only to have it faster.
Or withouth checking if the engine even runs without problems.
Iām trying to get hardware acceleration working with my Intel 265k (Arrow Lake) iGPU. Iāve never had this work successfully before.
I thought itās likely this preview build for Battlemage would help: Battlemage Support - #245 by chris_decker08 .
Iām running in a Docker container with an Ubuntu 25.10 host. I tried getting it to work with both with the linuxserver/plex container (with VERSION and PLEX_DOWNLOAD environment variables and plexinc/pms-docker (with manually updating the server inside the container).
It sees the iGPU just fine in /dev/dri/card0 and /dev/dri/renderD128 and the transcoder settings show it.
This is, however, the logging I consistently get (not a lot of context on why it didnāt find anything):
Feb 15, 2026 22:16:53.998 [123636774845240] INFO - Plex Media Server v1.43.1.10495-10cfae054 - Docker Docker Container x86_64 - build: linux-x86_64 debian - GMT -08:00
Feb 15, 2026 22:16:53.998 [123636774845240] INFO - Linux version: 6.17.0-14-generic, language: en-US
Feb 15, 2026 22:16:53.998 [123636774845240] INFO - Processor: 12-core Intel(R) Core(TM) Ultra 7 265K
...
Feb 15, 2026 22:16:53.998 [123636774845240] INFO - Compiler is - Clang 11.0.1 (https://plex.tv 9b997da8e5b47bdb4a9425b3a3b290be393b4b1f)
Feb 15, 2026 22:18:59.441 [123636743789368] DEBUG - [Req#924/Transcode/e75fc39b-3c87-4544-a184-508315ceb7a9] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
...
Feb 15, 2026 22:18:59.441 [123636743789368] DEBUG - [Req#924/Transcode/e75fc39b-3c87-4544-a184-508315ceb7a9] TPU: hardware transcoding: final decoder: , final encoder:
As a test, I set up a parallel lscr.io/linuxserver/ffmpeg:latestcontainer with the same pass through configuration and am able to get it to use VA-API successfully.
To debug further, I installed vainfo in both the working ffmpeg container and the non-working Plex one. I then ran it on the host and in both containers.
Host:
$ sudo vainfo
Trying display: wayland
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
Trying display: x11
error: canāt connect to X server!
Trying display: drm
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.4.5 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSlice
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointEncSlice
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointEncSlice
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointEncSlice
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_12 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointEncSlice
VAProfileHEVCMain444_10 : VAEntrypointVLD
VAProfileHEVCMain444_10 : VAEntrypointEncSlice
VAProfileHEVCMain444_12 : VAEntrypointVLD
VAProfileHEVCSccMain : VAEntrypointVLD
VAProfileHEVCSccMain : VAEntrypointEncSlice
VAProfileHEVCSccMain10 : VAEntrypointVLD
VAProfileHEVCSccMain10 : VAEntrypointEncSlice
VAProfileHEVCSccMain444 : VAEntrypointVLD
VAProfileHEVCSccMain444 : VAEntrypointEncSlice
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileHEVCSccMain444_10 : VAEntrypointVLD
VAProfileHEVCSccMain444_10 : VAEntrypointEncSlice
Plex (non-working):
# vainfo
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: canāt connect to X server!
libva info: VA-API version 1.20.0
libva info: User environment variable requested driver āiHDā
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 18
vaInitialize failed with error code 18 (invalid parameter),exit
ffmpeg container (working):
# vainfo
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: canāt connect to X server!
libva info: VA-API version 1.23.0
libva info: User environment variable requested driver āiHDā
libva info: Trying to open /usr/local/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_23
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.23 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.3.4 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointEncSlice
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointEncSlice
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointEncSlice
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointEncSlice
VAProfileHEVCMain12 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_12 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointEncSlice
VAProfileHEVCMain444_10 : VAEntrypointVLD
VAProfileHEVCMain444_10 : VAEntrypointEncSlice
VAProfileHEVCMain444_12 : VAEntrypointVLD
VAProfileHEVCSccMain : VAEntrypointVLD
VAProfileHEVCSccMain : VAEntrypointEncSlice
VAProfileHEVCSccMain10 : VAEntrypointVLD
VAProfileHEVCSccMain10 : VAEntrypointEncSlice
VAProfileHEVCSccMain444 : VAEntrypointVLD
VAProfileHEVCSccMain444 : VAEntrypointEncSlice
VAProfileAV1Profile0 : VAEntrypointVLD
VAProfileAV1Profile0 : VAEntrypointEncSlice
VAProfileHEVCSccMain444_10 : VAEntrypointVLD
VAProfileHEVCSccMain444_10 : VAEntrypointEncSlice
Perhaps thereās some incompatibility between the host driver and 1.20 version in the container?
Perhaps Iād have better luck if I stuck with 24.04, but moving to 25.10 was part of my troubleshooting and I was able to get it working at least outside of Plex.
I know that Plex doesnāt use the OS copy of iHD_drv_video.so but retrieves its own⦠maybe itās in need of an update to work in this environment. If thatās correct, is there a roadmap for that?
Thanks!
(removed) didnāt see the above community build, use that.
I got it working, see my post here Arrow Lake iGPU: why hardware transcoding fails and what would fix it
@Atomatth ā thanks for merging my thread. Since youāve seen the analysis, I wanted to follow up directly: is bundling a musl + libc++ compiled iHD_drv_video.so something the team is considering?
The community plex-next image (which ships iHD 25.4.6 built for Alpine/musl) has confirmed working VAAPI hardware transcoding on Arrow Lake ā zero-copy decode and encode. So the fix is proven; itās just a matter of Plex building iHD with the same musl + Clang + -stdlib=libc++ toolchain you already use for libigdgmm.so.12.
Any visibility on whether this is being tracked or has a timeline would be really appreciated. There are a lot of Arrow Lake and Meteor Lake users in this thread waiting on it, and the workaround (switching to an unofficial container image) isnāt ideal for everyone.
I still need to test out the community image. I am not 100% sure my fix is working after some follow ups, I will need to investigate.
Sorry if Iām missing something, but did you try the custom 1.43.2.10623-07eb705bc build linked above (Hardware/GPU/Quicksync transcoding broken on Beta 1.43.1.10540 - #118 by chris_decker08 )?
I built the container starting with the official 1.43.1.10611 image and then followed these instructions to update the container with the custom build. Worked for me.
https://forums.plex.tv/t/how-to-run-a-custom-build-of-pms-in-docker/918517
Yep, that build fixed it for me. The problem was it not downloading the driver like it was supposed to.
The custom build worked for me. The forums are just awful to search through with this new UI.
Hello!
What about DSM 7.3.2 with GeminiLake for Synology DS220+?
Thank you!
Still waiting for the fix to be published for plex pass⦠Please release! ![]()
This thread is for systems with Arrow Lake CPUs.
Hardware transcoding already works on Gemini Lake.
Use the public release at plex.tv/download.
If you are having trouble with Plex on your NAS, open a new thread in the server-synology section of the forum.
Looking forward to a solution here. I bought an Arrow lake CPU specifically for HEVC transcoding (and the fact that microcenter gave 32gb of ram with it.)
Iām using the beta build in this thread and having better experience than I did with the release channel but there might still be an issue. Canāt nail it down for certain right now but certain files might be having problems for me. Iāll do more testing when I get time but Iām not particularly advanced and just overhauled everything, new proxmox install, new 26.10 Ubuntu VM on new hardware.
Hi. Are the competition, EMBY, JELLYFIN any better at this? I think if they were every1 would be flocking going over there.
Problem I think is, itās the same devs going around to these niche companies, being recycled using the same lame tech and code wherever they land. Thereās no more innovation in this area it seems. Its gotten to the point where we, The presubscribe paid customers, have to wait 6 months, a year, even 5yrs to see anything really revolutionary/evolutionary on these apps updated.
Weāre gonna have to wait for AI to swallow these devs into the virtual world and have them be turned into game pawns down on the arena floor for TRON to annihilate. ![]()