Sonos Arc soundbar DTS to AC3 Transcoding not working

I’m having similar issues.

Plex on Shield 2017 > LG C9 > Sonos Arc
C9 is on latest FW

With the Shield set to auto select audio formats, and Plex set to pass through audio over HDMI, AC3 (DD5.1) plays fine, but nothing comes through for DTS encoded videos.

With the Shield set to manually select formats (everything enabled bar DTS and DTS-HD), Plex still set to passthrough over HDMI, the Arc is receiving stereo 2.0 for both AC3 and DTS encoded videos. The two channels tend to be relatively empty, and carry basically no voice. No idea why that would effect the AC3 videos.

Setting Plex to disable passthrough causes the same issue of only two near empty channels, regardless of what I have the Shield set to.

The WebOS app directly on the TV has an option to set the supported output audio formats, so disabling DTS there allows for playback of DTS encoded videos since the server will transcode to AAC.

If the Android TV app had the same audio output settings as the WebOS, it’d likely sort all of the issues I’m having, but I suppose we’re more likely to see Arc implement LPCM before then

I’m getting this as well now and it’s super annoying!

Chiming in here as well. I have a similar setup, but with the LG C8 instead. With the Shield set to auto codec detection or manually set to exclude DTS, Plex still attempts to direct play DTS, so it’s flat out not honoring it.

The weird thing is that I was fairly certain I had verified this when I originally setup the Arc and it was correctly transcoding to AC3.

Taking another look at the client request for the transcode decision:

07-28 18:00:59.690  i: Fetching [method:GET] https://192.168.1.200:32400/video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&directPlay=1&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F30306&protocol=*&session=fed9d1ee1cb349d6-com-plexapp-android&skipSubtitles=1&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160&X-Plex-Client-Identifier=fed9d1ee1cb349d6-com-plexapp-android&X-Plex-Client-Platform=Android&X-Plex-Client-Profile-Extra=add-limitation(scope%3DvideoCodec%26scopeName%3Dh264%26type%3DupperBound%26name%3Dvideo.level%26value%3D52)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.width%26value%3D3840%26replace%3Dtrue)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DupperBound%26name%3Dvideo.height%26value%3D2160%26replace%3Dtrue)%2Badd-transcode-target(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26container%3Dmkv%26videoCodec%3Dh264%2Chevc%2Cmpeg2video%26audioCodec%3Daac%2Cdca%2Cmp3%26subtitleCodec%3Dpgs%26replace%3Dtrue)%2Badd-transcode-target-settings(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26CopyMatroskaAttachments%3Dtrue)%2Badd-limitation(scope%3DvideoAudioCodec%26scopeName%3Daac%26type%3DupperBound%26name%3Daudio.channels%26value%3D8%26replace%3Dtrue)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Dmp3)%2Badd-transcode-target-audio-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26audioCodec%3Ddca)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3D*%26type%3DNotMatch%26name%3Dvideo.anamorphic%26value%3D999%26replace%3Dtrue)%2Badd-transcode-target(type%3DsubtitleProfile%26context%3Dstreaming%26protocol%3Dhttp%26container%3Dmkv%26subtitleCodec%3Dsrt)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dmpeg2video)%2Bappend-transcode-target-codec(type%3DvideoProfile%26context%3Dstreaming%26protocol%3Dhls%26videoCodec%3Dhevc)%2Badd-limitation(scope%3DvideoCodec%26scopeName%3Dhevc%26type%3DMatch%26name%3Dvideo.profile%26list%3Dmain%7Cmain%2010)%2Badd-limitation(scope%3DvideoTranscodeTarget%26scopeName%3Dhevc%26scopeType%3DvideoCodec%26context%3Dstreaming%26protocol%3Dhls%26type%3Dmatch%26name%3Dvideo.colorTrc%26list%3Dsmpte2084%7Cbt709%7Cbt470m%7Csmpte240m%7Csmpte170m%7Cbt470bg%7Cbt2020-10%26isRequired%3Dfalse)&X-Plex-Device=SHIELD%20Android%20TV&X-Plex-Platform=Android&X-Plex-Platform-Version=9&X-Plex-Product=Plex%20for%20Android%20(TV)&X-Plex-Version=8.4.0.19231&X-Plex-Token=<snip>

It definitely seems to be telling the server that dca is permissible. Can this the Android app be updated to read the supported formats from the audio device? AFAIK this should be accessible via the AudioDeviceInfo on Android.

Great find, now all is needed is someone to acknowledge everything that has been said and found on this thread by an Employee or Ninja…

Just stumbled on this thread after researching the same issue commonly shared here i.e. Plex unable to transcode DTS audio or DTS-HD MA to DD5.1 output to the Sonos ARC.

Plex client<>server set-up is pretty straight forward. Shield TV Pro (2019) > LG OLED 65" E6 (the E6 is being replaced by a 2020 65" GX soon) > Sonos ARC (part of a Sonos 5.1.2 setup), directly connected to TV ARC HDMI input. HDMI passthrough enabled, option for DTS and DTS HD capable receiver disabled.

I tried both the Kodi app and Plex Add-on within the Kodi app on the Shield TV and I’m still unable to get the Plex server to transcode all Non-Dolby audio content (i.e. DTS of any flavour) to DD5.1 like it used to on my Playbar, before “upgrading” to Sonos ARC. Not sure if I missed an audio config setting on the Kodi app, but tried everything I could think of.

During DTS or DTS-HD MA playback on Plex, the movie playback settings indicates “Direct Play” of the audio steam which of course is incorrect, since the Sonos ARC is unable to support DTS and hence, needs to transcode. So I suspect something in the EDID (extended display identification data) is telling the Plex server that the Sonos Arc supports all audio codecs, and therefore requires no transcoding, but the actual output (for non-dolby formats) is indeed 2ch audio.

It’s frustrating, as I was fixated on jumping on the Atmos bandwagon with this new Sonos soundbar, only to discover that DTS transcoding (temporarily crippled?) on the Sonos ARC is only outputting 2 channel audio.

I hope the addition of LPMC support in a future Sonos firmware update will resolve this issue. The lack of LPMC on the Sonos ARC also affects multichannel surround output when gaming.

I’m a big fan Sonos (and huge fan of Plex ;), but I agree with a previous Sonos user forum post, that it seems Sonos is always missing something with their Home Theater products and it comes down a user experience (primarily affecting the AV enthusiasts niche market) of trade offs, work arounds or compromises or everything in between.

I’ll be eagerly following this thread to get further user insights and hopefully get this issue resolved, sooner rather than later…hopefully! Cheers!

1 Like

@Plexmark while I haven’t verified if the Shield is getting the correct EDID, you can manually override it in the settings. However, based on the client logging I captured above, the request that the plex client makes to the server seems to ignore these settings. AFAICT Plex is just assuming it can always directplay audio if you have it set to HDMI passthrough.

Sounds about right. Maybe that is why Emby has an option for DTS and DTS-HD compatibility, when uncheck it’ll transcode to DD.

So I did notice that the API I suggest requires API Level 23, which may be a bit too new for the Android TV devices that Plex wishes to support.

If they want to use something supported back to API Level 21 they could listen to the ACTION_HDMI_AUDIO_PLUG intent and read the EXTRA_ENCODINGS field.

AFAICT setup is exactly how Exoplayer is wired up to adapt to HDMI audio encoding updates.

I’ll take a deeper dive into the Shield TV EDID for audio output (found this thread a couple hrs ago during trouble shooting).

I have a powerful matrix switch/scaler (HDFury Diva) connected to my setup chain that includes an EDID manager (Webserver UI). My guess is that it will display a 2ch audio signal being received while playing back DTS content. Will update once tested,

Update…just verified the EDID signal playing back two movies. The first audio test was “Ford v Ferrari” encoded in Dolby Atmos over True HD (awesome reference movie to test multichannel sound). The EDID signal on this movie indicates that the audio output is in bitstream, with full multichannel support (Dolby TrueHD) on the Sonos ARC. This is my baseline test,

The second movie was “Underwater” encoded in DTS-HD Master Audio 7.1. The EDID signal during playback displays L-PCM 48kHz 2.0ch 16bit when using the Plex app on the Shield TV Pro (source input) to the Sonos ARC . So we already established (and Sonos officially acknowledged) that the ARC does not support LPMC yet, hence the downsampling to 2ch stereo output.

Hi @Plexmark

Given that you have the E6 model you are possibly experiencing a variant of this issue.

It was through a recent update to the C9 that the tv itself was able to support L-PCM through e-arc. It was only after this firmware update where things really broke down. The C9 (I suspect) is now advertising L-PCM (PCM is stereo remember) and when playing DTS most of the channels cannot be heard because they are not being downsampled. Basically all channels are being sent to the Arc and it’s ignoring them.

Your current TV would never support L-PCM because it’s not HDMI 2.1 so I suspect even though your Sonos arc is only receiving a PCM signal it should still include all the channels downsampled.

Naturally, Plex detecting this and invoking it’s transcoder would be great in all cases.

George

My understanding is this issue is affecting all Sonos ARC users across the board regardless of TV model, unless I’m missing something.

A G10 will be arriving in a few days to replace the E6, but realistically I’m not expecting the DTS transcoding issue to magically work. At least not just yet. Interestingly (and disappointingly), LG has dropped DTS support on their 2020 TV’s with other manufacturers following suit. Even without DTS support on a TV, I suspect this still comes down to a Sonos ARC fix in order to get Plex to properly transcode non-Dolby audio content. Plex transcoded DTS, etc. flawlessly on my previous Playbar via optical when connected to the E6.

I wasn’t compeltely clear…the initial issue was that plex is unable to transcode DTS to DD. That is 100% the problem that will affect everyone. In this case disabling DTS on the shield will force plex to send PCM or LPCM depending on your TV’s EDID (this should work for you and it sounds like it is).

However…recently LG updated the C9 to support LPCM via e-ARC. This is now telling plex that the TV can support LPCM and thus Plex is sending LPCM. Since the Sonos Arc doesn’t support LPCM yet it simply plays the front L+R channels and is effectively missing all other channels (including center).

Before the LG C9 firmware plex would send regular PCM which the Sonos Arc would play just fine (although obviously not ideal, transcoding to DD5.1 would be better).

Does that make sense? It’s two slight variences on the same core problem. But basically, for anyone with a C9 and the latest firmware (i assume CX too) plex is unusable for any DTS tracks.

@georgejolliffe yup, that makes sense. Thanks for sharing some further insights on this issue!

OOC, do you know that the shield is sending L-PCM, or is the C9 getting the DTS and then deciding to send L-PCM to the Arc?

Regardless, we should get the root cause addressed: Plex shouldn’t attempt to directplay DTS if the Shield is explicitly saying it’s not supported. At least with my LG C8 the setup is completely broken as it doesn’t even attempt to send PCM.

We likely need to open a FR with Plex to detect the supported HDMI audio encodings, or at the very least provide configuration options like they do for optical. I think @jesusmc had originally implemented the optical transcoding support so they may have some thoughts on this.

Sorry, but I didn’t such thing :smile: Almost sure @IanDBird and/or @sixones will know better

Ah sorry! I had seen you tagged in the 3 or 4 beta release notes that had mentioned it and assumed you had been working on it. My appologies!

I think the shield is sending L-PCM for the following reason…

Pre LG Firmware 04.80.03 I could disable DTS in the shield and the Sonos Arc would recieve a downsampled PCM signal (sounded fine but not ideal). After the firmware update (with no other system changes) the Sonos Arc is still recieving PCM Stereo but without downsampling.

Therforce I infer the DTS selector option is working on the shield because with DTS enabled i get no sound at all (as expected) and thus the only change is the EDID that the LG C9 is presenting to the shield.

I’ve just got an Arc and an Nvidia Shield and I’ve been scratching my head on this.

TrueHD, Atmos etc all work but DTS tracks show as Stereo 2.0 in the app. Am I right in thinking it’s transcoding to LPCM 5.1 but only displaying 2.0 as the Arc doesn’t yet support it? I’m in two minds if to keep the shield or not. If it is indeed transcoding to 5.1 I’ll keep it as the Arc will get the update eventually.