[BUG] Plex does not transcode HE-AAC correctly - impacts ALL android devices

I have been playing around with setting up Live TV this weekend, and I have encountered the same issue as the OP.
On Android, audio is HE-AAC Stereo Direct Play, no audio on the device, and video stuttering.
This is only occurring on 1 broadcaster’s set of channels. All other broadcaster’s channels are playing fine because they are AAC audio.

Same, using iptv through xteve to plex and works wonderfully on my PMS PC, but not at all on my nvidia shields

1 Like

Hey Dave - Just wanted to check to see if there are any updates. Will the temporary solution to transcode to AAC work at least temporarily?

I don’t have any further updates at this time. I’m not aware of what temporary solution you’re referring to.

@DaveBinM I beleive @Charabel might be referring to this work-around (if you’re using xteve) - not ideal to have to transcode every stream with ffmpeg though, obviously.

That’s correct. Hoping the temp work around will have android devices transcode HE-AAC to AAC by default. I think this is what the roku devices are already doing since roku devices do not support the HE-AAC codec… But I could be wrong. @DaveBinM @Prindle19

We don’t have any kind of workaround like that in place. As I mentioned before, I don’t have news to share at this time.

Just for fun I tried the sample listed in that reddit thread and yeah, it’s super broken during playback. Quickly converting it from HE-AAC to AC3 fixes it completely.

Let me start off by saying that I’m aware of the ffmpeg setting in xteve to temporarily work around this. That method works most of the time for me, but not as rock solid as directly passing the input to Plex.

This wouldn’t be that big of an issue if the Android.xml was read how it used to be. Not sure when the functionality of the profiles was changed, but they definitely don’t behave how they used to. Plex, (the server) also can transcode HE-AAC correctly, so the title of this is a little misleading. If I change my home video quality settings to 4mb/sec (or lower depending on the input stream) and the Android.xml to:

<VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="opus" context="streaming" />

and

<VideoAudioCodec name="*">

It will transcode the HE-AAC audio stream to Opus successfully and play without any issue. The problem with this is it also transcodes the video, and only works if your Android client’s video quality setting is a lower video bitrate than the content’s (IPTV stream etc.).

Setting the h264 level in the Android client to 4.1 or lower seems to work as well forcing a transcode, but it again transcodes both the audio and video.

If I change the “DirectPlayProfiles” settings in the Android.xml, it has no effect like it used to. If it did, we could remove aac from this section so it forces a transcode of the audio only (because then it would not be listed as a direct play candidate).

To be clear, It’s the Plex Android client application that’s at fault here. It ignores any changes to the server’s Android.xml file if the client’s video quality setting is the same or higher than the input content. If the video quality is high enough, it attempts to play the audio HE-AAC content directly, and fails miserably.

As I see it, there are 3 possible solutions / workarounds (without using ffmpeg):

  1. Fix the HE-AAC handling in all Android clients.
  2. Fix the profile behavior so we can force a audio only transcode.
  3. Allow external players (vlc, etc.). This seems to be a feature of the mobile Android client only, not Android TV. To make matters worse, my mobile Android client crashes when trying to use the external player option + Live TV.

Is this still being investigated? This seems to have been identified a bug that impacts all android plex client including the one for Nvidia shield.

Yes, it is. It seems to be specific to TS files, so as an interim workaround, you should be able to remux them to MKV to make them work

Is there anyway to add the functionality back to the Android.xml file so we can do just that?

This would have worked a few versions ago, but now it does nothing if the target is capable of direct stream / direct play (a function which can’t be turned off on Android TV).

<VideoProfile protocol="hls" container="mkv" codec="h264" audioCodec="aac" context="streaming" />

no, it affects mkv, I have mkvs with he-aac audio on a Linux Plex server, shield tv can’t produce any sound out of it, iOS client plays just fine

Android version of Plex is really full of bugs

2 Likes

Do you have a sample of that I could look at?

I have come to the realization that you guys don’t not have any immediate plans or urgency to fix this issue. It shows by you asking the previous responder for a sample file when you have already been provided a ton of evidence from other users that this is a problem. The issue is impacting all android clients. I wonder why do you waste your time responding to something that the Devs obviously do not care to fix?

1 Like

This issue has reared it’s head in the new google tv chromecast as well

Well, we identified an issue with HE-AAC in TS files that we were unable to reproduce when it was remuxed into an MKV. I also personally tested a fix for the issue with TS files, though I’ve been on leave for a few weeks, and haven’t seen if it’s made its way out yet. As we couldnt reproduce with an MKV file, that’s why I asked for a sample.

EDIT: I went and checked, and this fix has not yet made it into a public build, but should hopefully be coming soon, along with some other player engine improvements.

5 Likes

Thank you for your honest response.

1 Like

I always strive to be honest, and provide as much information as I can :plexheart:

7 Likes

@DaveBinM we DO appreciate it, thanks!

1 Like