Versions
PMS Mac Version 1.23.5.4841
Plex Web Version 4.59.2
Sonos App version 13.1.4
Sonos hardware version 1.27.1.8-1.2
TV WebOS Version 5.2.1-290910
Plex WebOS Client Version 5.20.1
Plex WebOS Platform Version 5.2.1
Setup
Plex LG WebOS App > TV > Sonos Arc via HDMI 2.1 e-ARC output (HD audio capable, set to bitstream and e-ARC passthrough)
I understand WebOS apps can’t pass out HD audio like TrueHD.
File
An MKV called “Dolby Cinema - Universe (Nature’s Fury)” from Dolby Trailers - The Digital Theater. Link to file. Site states the files are tested with MPC-HC and Plex, and they update them.
Video: MKV H.264 2160p SDR 92.5 Mbps
Audio: Dolby TrueHD 7.1 ATMOS, Dolby Digital Plus 7.1, Dolby Digital 5.1.
Plex XML shows EAC-3 track has 8 channels (7.1)
eac3to lists the EAC-3 track here as 7.1. Also warns about bitstreaming in the exe:
eac3to screenshot
tsmuxergui doesn’t recognize the TrueHD Atmos track, but the EAC-3 track is 7.1, and also contains a 640Kb/s core 5.1 track
tsMuxerGUI screenshot
mediainfo shows the EAC-3 track as “6 channels / 8 channels”. Probably the EAC-3 7.1 with the 5.1 core
mediainfo screenshot
VLC calls the EAC-3 7.1 track “A/52 B Audio (aka E-AC3) (eac3)”, and defines it as only 5.1 (3F2M/LFE). Probably only picking up the core.
VLC screenshot
ffmpeg straight up calls the EAC-3 7.1 track 5.1(side) with 640kb/s, so it’s only picking up the core. Maybe by design.
ffmpeg screenshot
Playback/Issue
I loaded it into plex to see how it would handle the already-encoded EAC-3 7.1 track with a 5.1 core. TrueHD Atmos to EAC3 7.1 transcoding is operational and plays as expected on my system. The XML has EAC-3 7.1, and Plex Web seems to be tagging it properly:
Plex Web get info screenshot
During playback, Plex Web and iOS Dash tags it properly as EAC-3 7.1. Notice it’s also direct playing:
Plex Web screenshot
Plex Dash screenshot
Oddly, Tautulli shows the EAC-3 7.1 direct playing back as TrueHD 7.1 (which probably isn’t the case, as direct play of TureHD isn’t allowed/possible in Plex or any LG WebOS apps?):
Tautulli screenshot
However, what’s actually coming out is EAC-3 5.1 (Dolby Digital 5.1), according to my sonos app, which tells me what kind of audio is being passed into it and out to me:
Sonos app live output screenshot
Sonos app live System Info screenshot
The audio cuts in and out, and never plays steadily. The TV supports all of Dolby’s current technologies (TrueHD Atmos, Dolby Vision, etc). As shown before, Plex and Tautulli say it’s direct playing EAC-3 7.1 (Dolby Digital Plus 7.1) to me. I suspect Plex is actually passing me the ac3 5.1 core for direct play, even though Plex and Tautulli say it’s 7.1. Unless Tautulli is right and somehow it’s passing me a glitchy TrueHD stream? Probably just a glitchy ac3 5.1 core, though. Strange it would be cutting in and out, as the file plays the same ac3 5.1 core from the same EAC3 7.1 track playing via USB on the built-in player on the TV.
I thought maybe it was a compatibility issue, but Plex’s TrueHD to EAC-3 7.1 transcoding works splendidly on my system, so I assume an already-encoded EAC-3 7.1 would work, as well. Still, I switched to the TrueHD track, which produced a clean EAC-3 7.1 (Dolby Digital Plus 7.1) output:
Plex Web screenshot
Tautulli screenshot
Plex Dash screenshot
Sonos app live output screenshot
Sonos app live system info screenshot
More on the “Core”
As we saw, tsMuxerGUI showed the EAC-3 7.1 track contains a 640Kbps core (probably either EAC-3 or AC3). Doing more research on the topic, Dolby technology takes advantage of two types of Dolby Digital Plus 7.1 (EAC-3 7.1) encoding. One meant for streaming (audio track with .ec3 extension), and one for Blu-Ray/UHD Blu-Ray (audio track with .eb3 extension). PDF - See “1 Atmos Files in Media Manifest”.
The 3rd audio track (AC3 5.1) in the trailer is a commentary track saying “this disc is meant to showcase dolby atmos, select a different track on the blu-ray disc”, or something along those lines. So it’s a rip from a Blu-Ray disc, and the file more than likely uses the non-streaming .eb3 Dolby Digital Plus 7.1 EAC-3 technology. Maybe Plex’s transcoder only uses some version of the “streaming” Atmos EAC-3 7.1 (.ec3, not .eb3), and can’t process the .eb3 Dolby Digital Plus 7.1 EAC-3 track in this trailer properly for playback. I suspect a .eb3 5.1 core is always passed when “streaming” (not Blu-Ray playback), while a .ec3 5.1 core plays more of a secondary role and the 7.1 track is passed when “streaming”.
Logs
Here are the logs. Hopefully I did it correctly. Not sure if WebOS Plex app sends logs to the zip that’s generated from Plex Web Manage > Troubleshooting > Download Logs. WebOS Plex app was set to debug logs on during the playback. Let me know if it doesn’t contain the info needed and I’ll try again.
Plex Media Server Logs_2021-07-24_16-27-22.zip (8.4 MB)
Further Discussion/Questions
Is Plex able to ever handle proper 7.1 playback of EAC-3 7.1 Dolby Digital Plus tracks not produced by it’s own transcoder? For instance, if one was able to encode a track with “streaming” DD+ EAC-3 7.1 (.ec3), would it playback in Plex properly? I assume so since Plex is able to transcode TrueHD to EAC-3 7.1. Unless Plex has access to Dolby’s suite, how can the average user prepare media like this before playback?
Does it’s transcoding process strip the 5.1 core out of the EAC-3 7.1 Dolby Digital Plus track so it can pass only 7.1 out instead of 5.1? Or does it force the 7.1 somehow?
Furthermore, does Plex utilize the .ec3 streaming technology, or the Blu-Ray/UHD Blu-Ray .eb3 technology, or some version of the two provided by some open or closed source library?
If it can’t be done without Dolby’s expensive decoder/encoder suite, where does Plex get the ability to transcode to EAC-3 7.1 “streaming” Atmos (if that’s the case)? I’ve seen reference to truehd_eae and eac3_eae streaming encoders/decoders (log output in this post). I’d imagine any version would have to be properly licensed to be able to decode & transcode from TrueHD for playback in Dolby Digital Plus 7.1.
If you’ve made it this far… thank you. This definitely isn’t a normal use case, but moving forward these questions will probably be needing answers as technology changes/becomes more available.