Why is DTS transcoded to AAC instead EAC3? Client profile leads to unfavorable audiostream transcode

Server Version#: 1.32.5.7349-7000 on Synology DSM 7.0
Player Version#: LG WebOS 5.67.2

Hi there,

my LG C2 is capable of DD/DD+/DD Atmos but not DTS (any subtype).
If I start playing a mkv via the above WebOS client the DTS-HD MA audio stream gets trancoded to AAC. I’d prefer to have it transcoded to a corresponding Dolby format (EAC3 or AC3) as I use eARC and want my Denon AVR to display and handle it correctly.

I validated that the client’s audio setting is set to enable “Dolby Digital (AC3)” and “Dolby Digital Plus (EAC3)”.

Then I logged the decisions for the client and here is the outcome:

Aug 25, 2023 13:49:30.341 [140135547620152] Fehlersuche — [Req#116662] [Now] Device is webOS (LG OLED65C29LD).
Aug 25, 2023 13:49:30.341 [140135547620152] Fehler — [Req#116662] Unable to find client profile for device; platform=webOS, platformVersion=7.3.1, device=webOS 7.3.1, model=OLED65C29LD

Aug 25, 2023 13:49:30.390
[Req#11660d/Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: add-transcode-target(type=videoProfile&context=streaming&protocol=hls&container=mpegts&videoCodec=h264,hevc,mpeg2video,mpeg4&audioCodec=aac,ac3,eac3,mp2,mp3)+add-limitation(scope=videoAudioCodec&scopeName=mp2&type=upperBound&name=audio.bitrate&value=350)+add-limitation(scope=videoAudioCodec&scopeName=mp3&type=upperBound&name=audio.bitrate&value=350)+add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=51)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.bitDepth&value=8)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.width&value=3840)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.height&value=2160)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.bitDepth&value=10)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.width&value=3840)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.height&value=2160)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.bitDepth&value=8)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.width&value=1920)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg2video&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.height&value=1080)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg4&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.bitDepth&value=8)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg4&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.width&value=1920)+add-limitation(scope=videoTranscodeTarget&scopeName=mpeg4&scopeType=videoCodec&context=streaming&protocol=hls&type=upperBound&name=video.height&value=1080)
Aug 25, 2023 13:49:30.455 [140135417969464] Fehlersuche — [Req#11660d/Transcode] TranscodeUniversalRequest: using augmented profile Generic

Aug 25, 2023 13:49:30.483 [140135417969464] Fehlersuche — [Req#11660d/Transcode] MDE: <MOVIE NAME> (2017): no direct play video profile exists for http/mkv/h264/dca
Aug 25, 2023 13:49:30.483 [140135417969464] Fehlersuche — [Req#11660d/Transcode] MDE: <MOVIE NAME> (2017): Audio Direct Streaming is disabled, so video's audio stream will be transcoded
Aug 25, 2023 13:49:30.483 [140135417969464] Fehlersuche — [Req#11660d/Transcode] MDE: Cannot direct stream audio stream due to profile or setting limitations

Aug 25, 2023 13:49:30.484 [140135417969464] Fehlersuche — [Req#11660d/Transcode] Streaming Resource: Reached Decision id=91026 codes=(General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=1001,Direct play not available; Conversion OK.) media=(id=88554 part=(id=90155 decision=transcode container=mpegts protocol=hls streams=(Video=(id=120981 decision=copy width=1920 height=1080) Audio=(id=120982 decision=transcode bitrate=774 encoder=aac channels=6 rate=48000))))

Aug 25, 2023 13:49:30.561 [140135428516664] Info — [Req#116648] [Plex for LG] [<PLEX USER>l786:ij0csfyyz5nlz4w1vkf3f9pk]   audioStream: {
  "bitrate": 774,
  "bitrateMode": "cbr",
  "channels": 6,
  "codec": "aac",
  "default": true,
  "displayTitle": "Deutsch (DTS-HD MA 5.1)",
  "extendedDisplayTitle": "Deutsch (DTS-HD MA 5.1)",
  "forced": true,
  "id": "120982",
  "language": "Deutsch",
  "languageCode": "deu",
  "languageTag": "de",
  "requiredBandwidths": "2968,2884,2661,2374,2264,2264,2264,2264",
  "selected": true,
  "streamType": 2,
  "decision": "transcode",
  "location": "segments-av"
}

Aug 25, 2023 13:49:30.561 [140135428516664] Info — [Req#116648] [Plex for LG] [<PLEX USER>l786:ij0csfyyz5nlz4w1vkf3f9pk]   augmentations with profile: Generic
Aug 25, 2023 13:49:30.561 [140135428516664] Info — [Req#116648] [Plex for LG] [<PLEX USER>l786:ij0csfyyz5nlz4w1vkf3f9pk]     add-transcode-target streaming videoProfile hls mpegts h264,hevc,mpeg2video,mpeg4 aac,ac3,eac3,mp2,mp3

Aug 25, 2023 13:49:30.683 [140135428516664] Fehlersuche — [Req#116729/Transcode/xgtcc7f0jkqi7f9pap2lbzj6/JobRunner] Job running: FFMPEG_EXTERNAL_LIBS='/var/packages/PlexMediaServer/shares/PlexMediaServer/AppData/Plex\ Media\ Server/Codecs/8217c1c-4578-linux-x86_64/' X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "/volume1/@appstore/PlexMediaServer/Plex Transcoder" -codec:0 h264 -codec:1 dca -noaccurate_seek -analyzeduration 20000000 -probesize 20000000 -i "/volume1/Filme/<MOVIE NAME> (2017) [1080p DTS REMUX]/<MOVIE NAME> (2017) [1080p DTS REMUX].mkv" -map 0:0 -codec:0 copy -filter_complex "[0:1] aresample=async=1:ochl='5.1':rematrix_maxval=0.000000dB:osr=48000[0]" -map "[0]" -metadata:s:1 language=deu -codec:1 aac -b:1 774k -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 10 -segment_start_number 0 -segment_copyts 1 -segment_time_delta 0.0625 -segment_list "http://127.0.0.1:32400/video/:/transcode/session/xgtcc7f0jkqi7f9pap2lbzj6/9f78d579-81f1-4f4c-8931-dc0e8b3e02b6/manifest?X-Plex-Http-Pipeline=infinite" -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_list_unfinished 1 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 "media-%05d.ts" -start_at_zero -copyts -vsync cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/xgtcc7f0jkqi7f9pap2lbzj6/9f78d579-81f1-4f4c-8931-dc0e8b3e02b6/progress

So as you can see the client correctly reports to the Plex server that it is capable of using AC3 and EAC3: “&audioCodec=aac,ac3,eac3,mp2,mp3)”

It would be better if the unsupported audio track is then transcoded to AC3 or EAC3 so the AVR can pick up this audio stream correctly instead of getting PCM-like multi-channel AAC.

Why does Plex Server decide to convert the DTS stream into AAC in this case and not (E)AC3 although it is clearly shown being supported by the client?
How does the decision tree look like? Is the server just picking the first audio format in the array of compatible codecs reported by the client??

E: Also see this post for other users asing for that too.

Thanks!

2 Likes

keep-alive post

keep-alive post

Same issue / question as original poster!

some insight in this thread about why AAC is used

tldr; EAC3 would require a license and AC3 would degrade the quality

I was told not all newer devices support multi-channel AAC even with passthrough.

AAC is a state-of-the-art audio compression algorithm that provides compression superior to that provided by older algorithms such as AC-3. AAC and AC-3 are both transform coders, but AAC uses a filterbank with a finer frequency resolution that enables superior signal compression. AAC also uses a number of new tools such as temporal noise shaping, backward adaptive linear prediction, joint stereo coding techniques and Huffman coding of quantized components, each of which provide additional audio compression capability. Furthermore, AAC is much more flexible than AC-3, in that AAC supports a wide range of sampling rates and bitrates, from one to 48 audio channels, up to 15 low frequency enhancement channels, multilanguage capability and up to 15 embedded data streams.

So which is it?

What’s the answer here? Higher bit rate for the audio? Switch to flac ?

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