Hardware transcoding not working on DS420+ on PMS Version 1.32.1.6999

Server Version#: Version 1.32.1.6999
Player Version#:
<If providing server logs please do NOT turn on verbose logging, only debug logging should be enabled>

Super weird but hardware transcoding no longer seems to be working at all on my Synology DS420+ which has an Intel Celeron J4025 (Geminilake). I knew this is a known issue with the latest versions of PMS but I had rolled back to 6999 a few weeks back and had no issues with hardware transcoding. However, starting this week hardware transcoding seems to have broken again even on 6999 and its killing my CPU usage and making streaming difficult.

Do I need to revert to an even older version? Any assistance or workarounds would be greatly appreciated!

1.32.1.6999 should be working for you on GeminiLake

As an alternative, here is 1.31.3.6868 which predates the IMD update in 1.32.0

I just reverted to 6868 and am still experiencing no hardware transcoding.

Here are some screenshots.


Would logs be helpful?

Server DEBUG logs please which capture the playback session start.

I need to see what’s happening.

Log is attached.
Plex Media Server.log (1.3 MB)

HW transcoding will not fully engage when subtitle burning is required.

Aug 16, 2023 16:33:08.243 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: Selected protocol dash; container: mp4
Aug 16, 2023 16:33:08.243 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: analyzing media item 21406
Aug 16, 2023 16:33:08.243 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: E17 - Rip In The Universe: Direct Play is disabled
Aug 16, 2023 16:33:08.244 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: E17 - Rip In The Universe: media must be transcoded in order to use the dash protocol
Aug 16, 2023 16:33:08.244 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: E17 - Rip In The Universe: selected audio stream is not the first audio stream and direct play stream selection is not enabled
Aug 16, 2023 16:33:08.244 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: E17 - Rip In The Universe: selected subtitle cannot be converted to a compatible format, burning into video stream
Aug 16, 2023 16:33:08.244 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: E17 - Rip In The Universe: avoiding video remux due to burned subtitle stream
Aug 16, 2023 16:33:08.244 [0x7f6783fffb38] DEBUG - [Req#296/Transcode] MDE: E17 - Rip In The Universe: no remuxable profile found, so video stream will be transcoded
Aug 16, 2023 16:33:08.246 [0x7f677c358b38] DEBUG - [Req#26a] [Now] User is jfofa (ID: 99624479)
Aug 16, 2023 16:33:08.246 [0x7f677c358b38] DEBUG - [Req#26a] [Now] Device is Tizen (TV 2019).
Aug 16, 2023 16:33:08.246 [0x7f677c358b38] DEBUG - [Req#26a] [Now] Profile is Generic

It will HW decode and HW encode (not displayed) but then use the CPU to burn in the subtitles .

At present, this is how it’s done.

We’re trying to figure out, if possible, a way to leverage the HW for subtitle burning too. (have some ideas, it’s really complex, but making progress )

Why doesn’t it display “(hw)” in the dashboard that hardware transcoding is occurring? It used to show that but no longer does. I also haven’t had issues in the past streaming this exact title but it pauses to buffer every few seconds now. Also is using the CPU to burn in subtitles very resource intensive? I’m still clocking around 99% CPU usage when I try to watch this title.

@sunizza

Show me the XML ( media info ) for the file you’re playing?

If there are subtitles in the file and subtitles are enabled, it will NOT use HW transcoding.

This is a common misunderstanding about how FFMPEG works.

It starts with HW decode, Software-CPU subtitle burning, HW encode
but because of the subtitle burning, the (hw) is suppressed.

You will still see the huge load (99%) as it burns the subtitles into the image.

We are trying to figure out a way to do more in hardware but don’t have anything reliable yet.

I see, thanks for the info. Here is the xml media info for the file in question.

<?xml version="1.0" encoding="UTF-8"?>
<MediaInfo
    xmlns="https://mediaarea.net/mediainfo"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://mediaarea.net/mediainfo https://mediaarea.net/mediainfo/mediainfo_2_0.xsd"
    version="2.0">
<creatingLibrary version="23.07" url="https://mediaarea.net/MediaInfo">MediaInfoLib</creatingLibrary>
<media ref="/Volumes/Media Library/Anime Series/Dragon.Ball.Z/Dragonball.Z.-.281.- S09E28.mkv">
<track type="General">
<UniqueID>205098686218505450184689413873180162061</UniqueID>
<VideoCount>1</VideoCount>
<AudioCount>3</AudioCount>
<TextCount>1</TextCount>
<FileExtension>mkv</FileExtension>
<Format>Matroska</Format>
<Format_Version>4</Format_Version>
<FileSize>926896819</FileSize>
<Duration>1452.480</Duration>
<OverallBitRate>5105182</OverallBitRate>
<FrameRate>23.976</FrameRate>
<FrameCount>34824</FrameCount>
<StreamSize>630338</StreamSize>
<IsStreamable>Yes</IsStreamable>
<Encoded_Date>2014-12-19 15:36:30 UTC</Encoded_Date>
<File_Modified_Date>2021-05-22 10:36:14 UTC</File_Modified_Date>
<File_Modified_Date_Local>2021-05-22 03:36:14</File_Modified_Date_Local>
<Encoded_Application>mkvmerge v7.0.0 (&apos;Where We Going&apos;) 32bit built on Jun  9 2014 15:08:34</Encoded_Application>
<Encoded_Library>libebml v1.3.0 + libmatroska v1.4.1</Encoded_Library>
</track>
<track type="Video">
<StreamOrder>0</StreamOrder>
<ID>1</ID>
<UniqueID>17657395786145566367</UniqueID>
<Format>AVC</Format>
<Format_Profile>High 10</Format_Profile>
<Format_Level>5</Format_Level>
<Format_Settings_CABAC>Yes</Format_Settings_CABAC>
<Format_Settings_RefFrames>5</Format_Settings_RefFrames>
<CodecID>V_MPEG4/ISO/AVC</CodecID>
<Duration>1452.451000000</Duration>
<BitRate>4500000</BitRate>
<Width>1920</Width>
<Height>1080</Height>
<Stored_Height>1088</Stored_Height>
<Sampled_Width>1920</Sampled_Width>
<Sampled_Height>1080</Sampled_Height>
<PixelAspectRatio>1.000</PixelAspectRatio>
<DisplayAspectRatio>1.778</DisplayAspectRatio>
<FrameRate_Mode>CFR</FrameRate_Mode>
<FrameRate>23.976</FrameRate>
<FrameRate_Num>24000</FrameRate_Num>
<FrameRate_Den>1001</FrameRate_Den>
<FrameCount>34824</FrameCount>
<ColorSpace>YUV</ColorSpace>
<ChromaSubsampling>4:2:0</ChromaSubsampling>
<BitDepth>10</BitDepth>
<ScanType>Progressive</ScanType>
<Delay>0.000</Delay>
<Delay_Source>Container</Delay_Source>
<StreamSize>825846654</StreamSize>
<Encoded_Library>x264 - core 133 r2334 a3ac64b</Encoded_Library>
<Encoded_Library_Name>x264</Encoded_Library_Name>
<Encoded_Library_Version>core 133 r2334 a3ac64b</Encoded_Library_Version>
<Encoded_Library_Settings>cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x113 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=abr / mbtree=1 / bitrate=4500 / ratetol=2.0 / qcomp=0.60 / qpmin=0 / qpmax=81 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00</Encoded_Library_Settings>
<Default>Yes</Default>
<Forced>No</Forced>
</track>
<track type="Audio" typeorder="1">
<StreamOrder>1</StreamOrder>
<ID>2</ID>
<UniqueID>13034951785665575815</UniqueID>
<Format>AAC</Format>
<Format_Settings_SBR>No (Explicit)</Format_Settings_SBR>
<Format_AdditionalFeatures>LC</Format_AdditionalFeatures>
<CodecID>A_AAC-2</CodecID>
<Duration>1452.459000000</Duration>
<BitRate>280989</BitRate>
<Channels>6</Channels>
<ChannelPositions>Front: L C R, Side: L R, LFE</ChannelPositions>
<ChannelLayout>C L R Ls Rs LFE</ChannelLayout>
<SamplesPerFrame>1024</SamplesPerFrame>
<SamplingRate>48000</SamplingRate>
<SamplingCount>69718032</SamplingCount>
<FrameRate>46.875</FrameRate>
<FrameCount>68084</FrameCount>
<Compression_Mode>Lossy</Compression_Mode>
<Delay>0.009</Delay>
<Delay_Source>Container</Delay_Source>
<Video_Delay>0.009</Video_Delay>
<StreamSize>51015723</StreamSize>
<Title>ENG+JAP MUSIC</Title>
<Language>en</Language>
<Default>Yes</Default>
<Forced>No</Forced>
</track>
<track type="Audio" typeorder="2">
<StreamOrder>2</StreamOrder>
<ID>3</ID>
<UniqueID>8714435685485890489</UniqueID>
<Format>AAC</Format>
<Format_Settings_SBR>No (Explicit)</Format_Settings_SBR>
<Format_AdditionalFeatures>LC</Format_AdditionalFeatures>
<CodecID>A_AAC-2</CodecID>
<Duration>1452.459000000</Duration>
<BitRate>170234</BitRate>
<Channels>2</Channels>
<ChannelPositions>Front: L R</ChannelPositions>
<ChannelLayout>L R</ChannelLayout>
<SamplesPerFrame>1024</SamplesPerFrame>
<SamplingRate>48000</SamplingRate>
<SamplingCount>69718032</SamplingCount>
<FrameRate>46.875</FrameRate>
<FrameCount>68084</FrameCount>
<Compression_Mode>Lossy</Compression_Mode>
<Delay>0.009</Delay>
<Delay_Source>Container</Delay_Source>
<Video_Delay>0.009</Video_Delay>
<StreamSize>30907377</StreamSize>
<Title>ENG+ENG MUSIC</Title>
<Language>en</Language>
<Default>No</Default>
<Forced>No</Forced>
</track>
<track type="Audio" typeorder="3">
<StreamOrder>3</StreamOrder>
<ID>4</ID>
<UniqueID>7978854630562528172</UniqueID>
<Format>AC-3</Format>
<Format_Commercial_IfAny>Dolby Digital</Format_Commercial_IfAny>
<Format_Settings_Endianness>Big</Format_Settings_Endianness>
<CodecID>A_AC3</CodecID>
<Duration>1452.480000000</Duration>
<BitRate_Mode>CBR</BitRate_Mode>
<BitRate>96000</BitRate>
<Channels>1</Channels>
<ChannelPositions>Front: C</ChannelPositions>
<ChannelLayout>M</ChannelLayout>
<SamplesPerFrame>1536</SamplesPerFrame>
<SamplingRate>48000</SamplingRate>
<SamplingCount>69719040</SamplingCount>
<FrameRate>31.250</FrameRate>
<FrameCount>45390</FrameCount>
<Compression_Mode>Lossy</Compression_Mode>
<Delay>0.000</Delay>
<Delay_Source>Container</Delay_Source>
<Video_Delay>0.000</Video_Delay>
<StreamSize>17429760</StreamSize>
<Title>JAP+JAP MUSIC</Title>
<Language>ja</Language>
<ServiceKind>CM</ServiceKind>
<Default>No</Default>
<Forced>No</Forced>
<extra>
<bsid>6</bsid>
<dialnorm>-31</dialnorm>
<compr>-0.28</compr>
<acmod>1</acmod>
<lfeon>0</lfeon>
<dialnorm_Average>-31</dialnorm_Average>
<dialnorm_Minimum>-31</dialnorm_Minimum>
<compr_Average>1.69</compr_Average>
<compr_Minimum>0.53</compr_Minimum>
<compr_Maximum>2.77</compr_Maximum>
<compr_Count>58</compr_Count>
<dynrng_Average>0.08</dynrng_Average>
<dynrng_Minimum>0.00</dynrng_Minimum>
<dynrng_Maximum>2.15</dynrng_Maximum>
<dynrng_Count>996</dynrng_Count>
</extra>
</track>
<track type="Text">
<StreamOrder>4</StreamOrder>
<ID>5</ID>
<UniqueID>18243038231098265478</UniqueID>
<Format>PGS</Format>
<MuxingMode>zlib</MuxingMode>
<CodecID>S_HDMV/PGS</CodecID>
<Duration>1419.794000000</Duration>
<BitRate>6011</BitRate>
<FrameRate>0.210</FrameRate>
<FrameCount>298</FrameCount>
<ElementCount>298</ElementCount>
<StreamSize>1066967</StreamSize>
<Language>en</Language>
<Default>No</Default>
<Forced>No</Forced>
</track>
</media>
</MediaInfo>

The thing is that I also tried playing another file with no subtitles and had it transcode but it also doesn’t show that hardware transcoding is occurring in the dashboard. Here are the logs for that too.
Plex Media Server.log (3.8 MB)

Thanks for the log.

  1. I see the ASS subtitles.
  2. one problem , because of how poorly PMS converts ASS subtitles, is that conversion.
  3. HW being supressed because of the subtitles is normal.
  4. It’s converting the video from 10 bit color to 8 bit color and converting the audio to AAC (for Dash protocol)
    – 10 → 8 bit color conversion without the HW is ‘software tonemapping’ and very cpu heavy
    – Audio conversion for dash is trivial here.
 2023 16:48:48.040 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: append-transcode-target-codec(type=videoProfile&context=streaming&audioCodec=aac&protocol=dash)
Aug 22, 2023 16:48:48.040 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] TranscodeUniversalRequest: using augmented profile Firefox
Aug 22, 2023 16:48:48.041 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] Downloading document http://127.0.0.1:32400/library/metadata/24429?checkFiles=1&includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=c7zanorhqijqc51g68bzyraa
Aug 22, 2023 16:48:48.043 [0x7f2424375b38] DEBUG - [Req#48da7] It took 0.000000 ms to retrieve 102 items.
Aug 22, 2023 16:48:48.046 [0x7f2424375b38] DEBUG - [Req#48da7] It took 10.000000 ms to retrieve 113 items.
Aug 22, 2023 16:48:48.049 [0x7f2424375b38] DEBUG - [Req#48da7] It took 0.000000 ms to retrieve 104 items.
Aug 22, 2023 16:48:48.050 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] It took 10.000000 ms to retrieve 183 items.
Aug 22, 2023 16:48:48.057 [0x7f2424375b38] DEBUG - [Req#48da7] It took 10.000000 ms to retrieve 140 items.
Aug 22, 2023 16:48:48.060 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] It took 0.000000 ms to retrieve 183 items.
Aug 22, 2023 16:48:48.063 [0x7f2424375b38] DEBUG - [Req#48da7] It took 10.000000 ms to retrieve 130 items.
Aug 22, 2023 16:48:48.063 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] We're going to try to auto-select an audio stream for account 1.
Aug 22, 2023 16:48:48.063 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] Selecting best audio stream for part ID 54160 (language: ja)
Aug 22, 2023 16:48:48.063 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] We're going to try to auto-select a subtitle.
Aug 22, 2023 16:48:48.063 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] Subtitles: Found a candidate subtitle language [en] for a foreign film
Aug 22, 2023 16:48:48.063 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/Req#48e4e] Audio Stream: 145331, Subtitle Stream: 145332
Aug 22, 2023 16:48:48.065 [0x7f2424375b38] DEBUG - [Req#48da7] It took 0.000000 ms to retrieve 110 items.
Aug 22, 2023 16:48:48.075 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] Found session GUID of 3022ml8hgsg2f8modx4c9dum in session start.
Aug 22, 2023 16:48:48.075 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] Cleaning directory for session 3022ml8hgsg2f8modx4c9dum ()
Aug 22, 2023 16:48:48.076 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] Starting a transcode session 3022ml8hgsg2f8modx4c9dum at offset -1.0 (state=3)
Aug 22, 2023 16:48:48.076 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Aug 22, 2023 16:48:48.077 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] [Universal] Using local file path instead of URL: /volume1/Media Library/Films/Spider-Man.Across.the.Spider-Verse.2023.1080p.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv
Aug 22, 2023 16:48:48.077 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode] TPU: hardware transcoding: final decoder: , final encoder: 
Aug 22, 2023 16:48:48.077 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/JobRunner] Job running: EAE_ROOT=/var/packages/PlexMediaServer/shares/PlexMediaServer/AppData/tmp/pms-f3d3805f-2fa7-4edf-b471-3b7584ae3675/EasyAudioEncoder FFMPEG_EXTERNAL_LIBS='/var/packages/PlexMediaServer/shares/PlexMediaServer/AppData/Plex\ Media\ Server/Codecs/2584b51-4483-linux-x86_64/' X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxx47c6-90e9-c3718bb32820 "/volume1/@appstore/PlexMediaServer/Plex Transcoder" -codec:0 h264 -codec:1 eac3_eae -eae_prefix:1 3022ml8hgsg2f8modx4c9dum_ -noaccurate_seek -analyzeduration 20000000 -probesize 20000000 -i "/volume1/Media Library/Films/Spider-Man.Across.the.Spider-Verse.2023.1080p.WEB-DL.DDP5.1.Atmos.H.264-FLUX.mkv" -map 0:0 -metadata:s:0 language=eng -codec:0 copy -filter_complex "[0:1] aresample=async=1:ochl='stereo':rematrix_maxval=0.000000dB:osr=48000[0]" -map "[0]" -metadata:s:1 language=eng -codec:1 aac -b:1 256k -f dash -seg_duration 5 -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 1 -time_delta 0.0625 -manifest_name "http://127.0.0.1:32400/video/:/transcode/session/3022ml8hgsg2f8modx4c9dum/a57cd50f-e80e-4368-9c7d-92dcfcb88d5d/manifest?X-Plex-Http-Pipeline=infinite" -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 dash -map 0:2 -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/3022ml8hgsg2f8modx4c9dum/a57cd50f-e80e-4368-9c7d-92dcfcb88d5d/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" -start_at_zero -copyts -vsync cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/3022ml8hgsg2f8modx4c9dum/a57cd50f-e80e-4368-9c7d-92dcfcb88d5d/progress
Aug 22, 2023 16:48:48.077 [0x7f2426512b38] DEBUG - [Req#48e4d/Transcode/JobRunner] In directory: "/var/packages/PlexMediaServer/shares/PlexMediaServer/AppData/Plex Media Server/Cache/Transcode/Sessions/plex-transcode-3022ml8hgsg2f8modx4c9dum-a57cd50f-e80e-4368-9c7d-92dcfcb88d5d"
Aug 22, 2023 16:48:48.080 [0x7f2424375b38] DEBUG - [Req#48da7] It took 0.000000 ms to retrieve 142 items.
Aug 22, 2023 16:48:48.083 [0x7f2424375b38] DEBUG - [Req#48da7] It took 0.000000 ms to retrieve 118 items.
Aug 22, 2023 16:48:48.085 [0x7f2424375b38] DEBUG - [Req#48da7] It took 0.000000 ms to retrieve 101 items.
Aug 22, 2023 16:48:48.088 [0x7f2424375b38] DEBUG - [Req#48da7] It took 10.000000 ms to retrieve 178 items.

Can you pull out the ASS subtitle track,
Convert it to SRT (there are online converters)
Use MKVToolnix (or other tool) to multiplex it back into another test version of the file in place of the ASS subtitles

Now measure the impact.

Lastly, Turn off ALL subtitle playback.

I have some sample videos you can use to confirm your hardware is working correctly if you wish.

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