EAC3 7.1 (Dolby Digital Plus 7.1) Incorrectly Labelled as EAC3 5.1

From what I’ve been told if you have a version of Dolby Digital Encoder that will let you choose Dolby Digital Plus as the format and “Standard” (as opposed to DVD-Video, DVD-Audio, or Blu-ray Disc) as the target (I’m assuming this is what you meant by profile), then DD+ should be passed by Plex, though it won’t be recognized as 7.1 due to the outdated ffmpeg/ffmprobe implementation. If it’s made with the Blu-ray Disc profile, Plex (and many other players) probably won’t pass 7.1. This is due to different core technologies/implementations between Blu-ray Atmos and “Streaming” Atmos (Blu-Ray Disc vs. Standard targets/profiles). More links to this info above.

This is helpful to troubleshoot If you’ve got a receiver/soundbar with an app that can show you what exactly is coming out of your speakers, despite what Plex or the TV is telling you.

Do you have an up-to-date ffmpeg installed on your system? You can find pre-built snapshots which are easy to install. If you’re Mac you can find it here. Windows you can find it here.

Once you’ve got ffmpeg up to date, you can simply do ffmpeg -i [file], which will give you a list of streams in the file. You’ll want to look at stream #0:1, #0:2, or #0:3. If ffmpeg is up to date, it’ll show your EAC3 7.1 as 7.1 (like in my screenshots above). If that shows you 7.1, and Plex shows 5.1, then you know Plex’s ffmpeg/ffmprobe is in error due to being out of date.

You might also try using UsEac3to (windows only). Import your file there and it will verify if you’ve actually got a true EAC3 7.1 track. Another good program (Mac friendly) is MediaInfo. Other good programs for the purpose of investigating MKV files (and MKV remuxing) are tsmuxergui and mkvtoolnix.

Otherwise, there’s not much to investigate, really. In my case I am getting 7.1, and Plex is showing me 5.1, and the reason is known. Time will tell.

I already checked it using a recent build of ffprobe and it shows 8 channels.
There is no option to pick a target but I have quite an old version. So in that case, it does seem like we just need to wait for Plex to update their binaries.

1 Like

Quick note, latest PMS update (macOS) 1.24.2.4973 updates Plex Transcoder (be22e26-4019), but it still recorgnizes the tracks as 5.1(side).

EasyAudioEncoder also received an update (1529 from 1445), though it’s unclear as to what has changed.

1 Like

Came here noticing the same issue - the eac3 7.1 files that I generate with official tooling are the hybrid 7.1/5.1 soundstage “streaming” eac3 style (not blu-ray). I was confused when Plex was displaying it as 5.1 but I agree that the ffmpeg explanation makes a lot of sense. I also am getting 7.1 during playback so it’s mostly an aesthetic issue imo.

1 Like

Latest PMS update (1.24.4.5081) hasn’t fixed the issue.

I just wanted to agree with many of your observations, and say that a comment I made was completely incorrect. This is wrong:

I think I even knew that wasn’t true, once upon a time, and was just feeling stupid.

It’s true that even normal, non Blu-ray E-AC-3 is structured as a primary 5.1 stream, with dependent streams for additional channels & languages. But it’s not “the same” as the legacy AC-3 5.1 stream used by Blu-ray. :man_facepalming: :woman_facepalming:

ffmpeg added support for 8 channel E-AC3/dependent stream decoding a while ago:

#4608 (Support eight-channel e-ac-3 decoding) – FFmpeg

But the latest Plex preview transcoder builds still see the snip.eac3 sample from that ticket as:

    Stream #0:0: Audio: eac3, 48000 Hz, 5.1(side), s16p

I’m wondering if Plex’s modified version of ffmpeg/libavcodec diverges because of the codec download & EAE stuff.

I feel OK pinging @ridley since she created the FFmpeg ticket …

Some streams really do use independent AC3 5.1 frames combined with an EAC3 dependent frame to add the extra channels for 7.1 (potentially replacing the existing surround channels)! It’s just not universal; most streams you’ll see use eac3 for both the dependent and independent subframes.

You’re spot on; we can’t use the upstream libavcodec decoder due to restrictions in our EAC3 license from Dolby. We could theoretically add support for dependent subframes in the parser, but it’d be somewhat complex to implement, so it hadn’t really been prioritized since as far as we’re aware the impact is purely cosmetic (displaying 5.1 on streams that actually play as 7.1 on supported devices). The original poster doesn’t seem to actually be affected by that issue, though (the meta we scan in is correct, probably because they’re on macOS, where we can rely on the OS-provided eac3 decoder).

@ymgenesis, if you’re running into quality issues and when direct playing, then I’m sorry to say that there’s not much we can do other than possibly disable DP of 7.1 eac3 on the affected device; we don’t really have much control of the playback stack on web-TV platforms. Could you check to see if the same thing happens when DSing instead of DPing?

3 Likes

Thanks for the details and information!

Thanks for the information! I suspected it was to do with the customized ffmpeg/ffprobe when MovieFan.Plex informed me earlier in the thread.

As you mentioned, it is a cosmetic issue for me. It scans in and gathers metadata properly, though it’s defined as 5.1 by Plex’s Transcoder executable, which incorrectly informs the WebUI, iOS Plex Dash, and Tautulli. EasyAudioEncoder does it’s thing properly and converts to WAV (to 8 channels or less), then converts to Dolby Digital Plus (Max Quality - 1024 kbps max). My sound system app shows a 7.1 Dolby Digital Plus output.

Another issue, and I suspect it’s more to do with the way EasyAudioEncoder is built rather than how Plex implements it, is the audio processing done during those conversions (see this post onwards). There’s some large volume/limiting fluctuation artifacts that can occur during establishing Dynamic Range Compression values, though that’s an entirely different issue for another post (I’ve made one here).

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