Working for me!! ![]()
I will only need more info if things are not working
Unfortunately, this preview breaks hardware-accelerated transcoding for my Jasper Lake-based Celeron N5105 CPU, for at least some formats. Here’s the XML info for one example:
<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="5" librarySectionTitle="Test Files" librarySectionUUID="5945e268-45c3-42a9-a49e-5d6295c3ec39" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1763687099">
<Video ratingKey="619" key="/library/metadata/619" guid="com.plexapp.agents.none://aae659507bb9ef892e5bcbf7c815147d9de21612?lang=xn" type="movie" title="LG Colors of Journey HDR UHD 4K Demo" librarySectionTitle="Test Files" librarySectionID="5" librarySectionKey="/library/sections/5" subtype="clip" summary="" skipCount="3" year="2017" thumb="/library/metadata/619/thumb/1695070609" art="/library/metadata/619/art/1695070609" duration="115221" originallyAvailableAt="2017-09-18" addedAt="1505782494" updatedAt="1695070609" createdAtAccuracy="epoch,local" createdAtTZOffset="0">
<Media id="588" duration="115221" bitrate="53262" width="3840" height="2160" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="hevc" videoResolution="4k" container="mkv" videoFrameRate="60p" audioProfile="lc" videoProfile="main 10" hasVoiceActivity="0">
<Part accessible="1" exists="1" id="590" key="/library/parts/590/1505782494/file.mkv" duration="115221" file="/mnt/csmedia/dvr/test/LG Colors of Journey HDR UHD 4K Demo.mkv" size="767185218" audioProfile="lc" container="mkv" deepAnalysisVersion="6" requiredBandwidths="63197,59593,58246,56149,55741,55741,55741,55741" videoProfile="main 10">
<Stream id="1769" streamType="1" default="1" forced="1" codec="hevc" index="0" bitrate="53136" language="English" languageTag="en" languageCode="eng" bitDepth="10" chromaLocation="left" chromaSubsampling="4:2:0" codedHeight="2160" codedWidth="3840" colorPrimaries="bt2020" colorRange="tv" colorSpace="bt2020nc" colorTrc="smpte2084" frameRate="60.000" height="2160" level="156" profile="main 10" refFrames="1" requiredBandwidths="63071,59467,58121,56023,55621,55621,55621,55621" width="3840" displayTitle="4K HDR10" extendedDisplayTitle="4K HDR10 (HEVC Main 10)"></Stream>
<Stream id="1770" streamType="2" selected="1" default="1" codec="aac" index="1" channels="2" bitrate="125" language="English" languageTag="en" languageCode="eng" audioChannelLayout="stereo" profile="lc" requiredBandwidths="121,121,121,121,121,121,121,121" samplingRate="48000" displayTitle="English (AAC Stereo)" extendedDisplayTitle="English (AAC Stereo)"></Stream>
</Part>
</Media>
<Image alt="LG Colors of Journey HDR UHD 4K Demo" type="coverPoster" url="/library/metadata/619/thumb/1695070609"/>
<Image alt="LG Colors of Journey HDR UHD 4K Demo" type="background" url="/library/metadata/619/art/1695070609"/>
<UltraBlurColors topLeft="2c2e31" topRight="2b2520" bottomRight="311f0b" bottomLeft="180803"/>
<Extras size="0"></Extras>
<Related></Related>
</Video>
</MediaContainer>
It falls back to software transcoding, but this CPU isn’t capable of transcoding 4K HDR10 media in real-time.
This same media transcodes using HW fine in the current beta release. I’d be happy to provide logs if you’d like @chris_decker08, just PM me. I can provide logs for both the working, current beta and forum preview here.
Here’s a link to the test file, if you need it:
@chris_decker08 , I tried to follow the guide to update my docker container to the latest version but it seems the plex_service.sh script doesn’t exist:
I tried searching for it like this:
root@abc:/# find / -path /mediathings -prune -o -name “plex_service.sh” -print
@Devedse Which docker image are you using (official, binhex, Linux server, etc)
Linux server one
I can’t find it in my binhex-plexpass either. I’m going to spin up an official Plex docker later tonight to try it out
Looks like it’s only in the official docker
So I couldn’t find that ‘plex_service.sh’ scirpt so I just created my own image using this github repo + changed the .deb url to the new one you posted:
I think it’s working on my Intel Arc Pro B50:
root 16726 0.0 3.2 405860 197808 ? Sl 22:55 0:42 /usr/lib/plexmediaserver/Plex Transcoder -codec:0 hevc -hwaccel:0 vaapi -hwaccel_output_format:0 vaapi -hwaccel_device:0 vaapi -codec:1 truehd_eae -eae_prefix:1 kpg45tkg8udzrxsfs6yu4pts_ -ss 279 -analyzeduration 20000000 -probesize 20000000 -i /plexplox/media/movies/PeopleFightingEachOtherInABigWarAboutFuelAndWater.mkv -ss 279 -analyzeduration 20000000 -probesize 20000000 -i /config/Library/Application Support/Plex Media Server/Cache/Transcode/Sessions/plex-transcode-kpg45tkg8udzrxsfs6yu4pts-ae3c5c6a-37ef-4a5b-8a0d-1ab1dff77e92/temp-0.srt -start_at_zero -copyts -init_hw_device vaapi=vaapi:/dev/dri/renderD128,driver=iHD -filter_hw_device vaapi -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/kpg45tkg8udzrxsfs6yu4pts/ae3c5c6a-37ef-4a5b-8a0d-1ab1dff77e92/progress -filter_complex [0:0]hwupload[0];[0]scale_vaapi=w=1280:h=720:format=p010[1];[1]hwupload[2] -map [2] -codec:0 hevc_vaapi -qp:0 21 -maxrate:0 3624k -bufsize:0 7248k -r:0 23.975999999999999 -sei:0 -a53_cc -force_key_frames:0 expr:gte(t,n_forced*3) -bsf:0 dovi_rpu=strip=1 -filter_complex [0:1] aresample=async=1:ochl='stereo':rematrix_maxval=0.000000dB:osr=48000[3] -map [3] -metadata:s:1 language=eng -codec:1 aac -b:1 162k -f dash -seg_duration 3 -dash_segment_type mp4 -init_seg_name init-stream$RepresentationID$.m4s -media_seg_name chunk-stream$RepresentationID$-$Number%05d$.m4s -window_size 5 -delete_removed false -skip_to_segment 94 -manifest_name http://127.0.0.1:32400/video/:/transcode/session/kpg45tkg8udzrxsfs6yu4pts/ae3c5c6a-37ef-4a5b-8a0d-1ab1dff77e92/manifest?X-Plex-Http-Pipeline=infinite -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 dash -map 1:s:0 -metadata:s:0 language=eng -codec:0 ass -strict_ts:0 0 -f segment -segment_format ass -segment_time 1 -segment_header_filename sub-header -segment_start_number 0 -segment_list http://127.0.0.1:32400/video/:/transcode/session/kpg45tkg8udzrxsfs6yu4pts/ae3c5c6a-37ef-4a5b-8a0d-1ab1dff77e92/manifest?stream=subtitles&X-Plex-Http-Pipeline=infinite -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_format_options ignore_readorder=1 -segment_list_unfinished 1 -fflags +flush_packets sub-chunk-%05d
So if someone wants to try this too, run this:
https://hub.docker.com/repository/docker/devedse/plexbattlemage/general
with the device mapped:
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
I have a dedicated XE-DG1 card (probably pretty rare), and the .deb on ubuntu 24.04 now gives HW Transcoding! As proved by intel_gpu_top (and the dashboard). woohoo!!
Tested out the build with my B580.
OS: unRAID 7.2.1
LinuxServer.io Docker Container
Used environment variables -
PLEX_DOWNLOAD=https://artifacts.plex.tv/plex-media-server-experimental
VERSION=1.43.1.10350-71a2c3fa9
Seemed to pull the build correctly and even used the B580 according to the logs but transcoding was extremely slow with constant buffering so I switched back as I was running out of time for testing.
If no one else has reported this and you need logs, let me know what I need to grab as I’d be more than glad to assist.
Exact same setup as rjwaters147 above, but with no slow transcoding/buffering issue.
Tested with 4x 1080p transcodes at the same time with no issues, skipping around and all with next to no delay.
server debug logs please which capture both PMS startup and the start of the playback ? (20 seconds worth will do)
working GREAT for me. Super snappy response. What I was hoping this B580 would do for my setup. Running official docker container on Fedora 43. Thanks!
I have to say this is working really well for me. I specified the download URL and I am using linuxserver.io’s Plex docker image. No issues to report as of now.
Recreated the issue and pulled the logs with debug enabled, let me know a secure way to share them as I cannot message you directly.
Check your PM.
The container is seeing the GPU when it probes the bus.
Nov 22, 2025 09:51:05.324 [22545209838392] INFO - Preemptively preparing driver imd for GPU Intel Raptor Lake-S GT1 [UHD Graphics 770]
Nov 22, 2025 09:51:05.324 [22545209838392] DEBUG - [DriverDL/imd] Skipping download; already exists
Nov 22, 2025 09:51:05.348 [22545088641848] DEBUG - Grabber: Cleaning up orphaned grabs.
Nov 22, 2025 09:51:05.348 [22545217186448] DEBUG - Media Provider: Registering provider com.plexapp.plugins.library
Nov 22, 2025 09:51:05.348 [22545217186448] DEBUG - Auth: Refreshing tokens inside the token-based authentication filter.
Nov 22, 2025 09:51:05.349 [22545217186448] DEBUG - MyPlex: using cached data for request for https://plex.tv/api/v2/server/access_tokens?auth_token=xxxxxxxxxxxxxxxxxxxx
Nov 22, 2025 09:51:05.349 [22545088641848] DEBUG - Grabber: Cleaned up 0 decrepit directories in 0.0 sec.
Nov 22, 2025 09:51:05.362 [22545201945400] DEBUG - Request: didn't get any data from [::ffff:127.0.0.1]:59274: End of file
Nov 22, 2025 09:51:05.373 [22545217186448] DEBUG - MyPlex: updating with 18 access tokens
Nov 22, 2025 09:51:05.374 [22545217186448] DEBUG - MyPlex: using cached data for request for https://plex.tv/api/v2/server/users?auth_token=xxxxxxxxxxxxxxxxxxxx
Nov 22, 2025 09:51:05.374 [22545209838392] INFO - Preemptively preparing driver icr for GPU Intel Raptor Lake-S GT1 [UHD Graphics 770]
Nov 22, 2025 09:51:05.374 [22545209838392] DEBUG - [DriverDL/icr] Skipping download; already exists
Nov 22, 2025 09:51:05.374 [22545217186448] DEBUG - MyPlex: using cached data for request for https://plex.tv/api/v2/server/users/subscriptions?auth_token=xxxxxxxxxxxxxxxxxxxx
Nov 22, 2025 09:51:05.374 [22545209838392] INFO - Preemptively preparing driver imd for GPU Intel Battlemage G21 [Arc B580]
Nov 22, 2025 09:51:05.374 [22545209838392] DEBUG - [DriverDL/imd] Skipping download; already exists
Nov 22, 2025 09:51:05.375 [22545217186448] DEBUG - MyPlex: using cached data for request for https://plex.tv/api/v2/server/users/services?auth_token=xxxxxxxxxxxxxxxxxxxx
Nov 22, 2025 09:51:05.375 [22545209838392] INFO - Preemptively preparing driver icr for GPU Intel Battlemage G21 [Arc B580]
Nov 22, 2025 09:51:05.375 [22545209838392] DEBUG - [DriverDL/icr] Skipping download; already exists
In this playback, I am seeing EAE converting audio but it’s not transcoding video
(Notice: -codec:0 copy – copy the video stream)
Nov 22, 2025 09:53:06.872 [22545052781368] DEBUG - [Req#1d4c/Transcode] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Nov 22, 2025 09:53:06.873 [22545052781368] DEBUG - [Req#1d4c/Transcode] [Universal] Using local file path instead of URL: /media/movies/Top Gun Maverick (2022)/Top Gun Maverick (2022) {tmdb-361743} {edition-Imax} [Remux-2160p][DV HDR10Plus][TrueHD Atmos 7.1][HEVC]-WiLDCAT.mkv
Nov 22, 2025 09:53:06.874 [22545052781368] DEBUG - [Req#1d4c/Transcode] TPU: hardware transcoding: final decoder: , final encoder:
Nov 22, 2025 09:53:06.874 [22545052781368] DEBUG - [Req#1d4c/Transcode/JobRunner] Job running: EAE_ROOT=/run/plex-temp/pms-113cbdad-f5f7-4f84-bf96-d113f0254c22/EasyAudioEncoder FFMPEG_EXTERNAL_LIBS='/config/Library/Application\ Support/Plex\ Media\ Server/Codecs/a19eed8-b8aa9c258626959a56a2e9cf-linux-x86_64/' X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "/usr/lib/plexmediaserver/Plex Transcoder" -codec:0 hevc -codec:1 truehd_eae -eae_prefix:1 41f689bb-2a07-479f-9787-dcbf4b5c67b3-1_ -ss 536 -noaccurate_seek -analyzeduration 20000000 -probesize 20000000 -i "/media/movies/Top Gun Maverick (2022)/Top Gun Maverick (2022) {tmdb-361743} {edition-Imax} [Remux-2160p][DV HDR10Plus][TrueHD Atmos 7.1][HEVC]-WiLDCAT.mkv" -start_at_zero -copyts -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310/progress -map 0:0 -metadata:s:0 language=eng -codec:0 copy -filter_complex "[0:1] aresample=async=1:ochl='7.1':rematrix_maxval=0.000000dB:osr=48000[0]" -map "[0]" -metadata:s:1 language=eng -codec:1 eac3_eae -eae_prefix:1 41f689bb-2a07-479f-9787-dcbf4b5c67b3-1_ -b:1 1000k -f segment -segment_format matroska -metadata duration=7814.528 -segment_format_options live=1 -segment_time 1 -segment_header_filename header -segment_start_number 0 -segment_list "http://127.0.0.1:32400/video/:/transcode/session/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310/manifest?X-Plex-Http-Pipeline=infinite" -segment_list_type csv -segment_list_unfinished 1 -segment_list_size 5 -segment_list_separate_stream_times 1 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 "chunk-%05d"
Nov 22, 2025 09:53:06.874 [22545052781368] DEBUG - [Req#1d4c/Transcode/JobRunner] In directory: "/transcode/Transcode/Sessions/plex-transcode-41f689bb-2a07-479f-9787-dcbf4b5c67b3-1-0dfcd295-3681-4957-86c6-97aa76e59310"
The playback ends here with PMS cleaning up
Nov 22, 2025 09:53:10.640 [22545050671928] DEBUG - [Req#20b6/Transcode/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310] Transcoder segment range: 0 - 75 (74)
Nov 22, 2025 09:53:10.672 [22545052781368] DEBUG - [Req#20b7/Transcode/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310] Transcoder segment range: 0 - 75 (75)
Nov 22, 2025 09:53:10.672 [22545057078072] DEBUG - [Req#20be/Transcode/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310] Transcoder segment range: 0 - 76 (75)
Nov 22, 2025 09:53:10.693 [22545059187512] DEBUG - [Req#20bf/Transcode/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310] Transcoder segment range: 0 - 76 (76)
Nov 22, 2025 09:53:10.693 [22545075985208] DEBUG - [Req#20c7/Transcode/41f689bb-2a07-479f-9787-dcbf4b5c67b3-1/0dfcd295-3681-4957-86c6-97aa76e59310] Transcoder segment range: 0 - 77 (76)
Nov 22, 2025 09:53:10.699 [22545084422968] DEBUG - Request: [173.169.39.182:39068 (WAN)] GET /video/:/transcode/universal/stop?session=41f689bb-2a07-479f-9787-dcbf4b5c67b3-1 (13 live) #1da7 TLS GZIP Signed-in Token (rjwaters147)
Nov 22, 2025 09:53:10.699 [22545201945400] DEBUG - Completed: [173.169.39.182:39068] 200 GET /video/:/transcode/universal/stop?session=41f689bb-2a07-479f-9787-dcbf4b5c67b3-1 (13 live) #1da7 TLS GZIP 0ms 195 bytes (pipelined: 18)
Nov 22, 2025 09:53:10.699 [22544994528056] DEBUG - [Req#1da7/Transcode] Killing job.
Nov 22, 2025 09:53:10.699 [22544994528056] DEBUG - [Req#1da7/Transcode] Signalling job ID 554 with 9
Nov 22, 2025 09:53:10.699 [22544994528056] DEBUG - [Req#1da7/Transcode] Job was already killed, not killing again.
Nov 22, 2025 09:53:10.699 [22544994528056] DEBUG - [Req#1da7/Transcode] Stopping transcode session 41f689bb-2a07-479f-9787-dcbf4b5c67b3-1
Nov 22, 2025 09:53:10.699 [22544998746936] DEBUG - [Req#1da7/Transcode] Cleaning directory for session 41f689bb-2a07-479f-9787-dcbf4b5c67b3-1 (/transcode/Transcode/Sessions/plex-transcode-41f689bb-2a07-479f-9787-dcbf4b5c67b3-1-0dfcd295-3681-4957-86c6-97aa76e59310)
What should be happening?
If it should visibly be transcoding,
Would you please repeat the logs capture but use Plex/web for the playback AND set the playback bitrate to a lower value such that it forces a video transcode ?
Quick question for the Unraid crowd about the steps to get this set up.
I’m currently using linuxserver and am curious if the following steps are correct.
- change VERSION from “docker” to “1.43.1.10350-71a2c3fa9”4
- add a variable that contains the KEY “PLEX_DOWNLOAD” and Value “https://artifacts.plex.tv/plex-media-server-experimental”
- apply it and open plex settings
- change hardware transcoding device to the battlemage card.
Are there any steps I’m missing or anything i am doing wrong? I assume HEVC video encoding is not to be selected due to it being experimental?
Thanks!
Yes that’s right. I just switched from binhex-plexpass to linuxserver image and did exactly that and it immediately downloaded the beta release. Changed the transcode to device to the battlemage and it worked.. I turned on HEVC encoding and it’s working like a champ. Trying to see if I can find any files it won’t hardware transcode but everything is working great so far

