I’m trying to play a media file with a TrueHD audio stream on my Nvidia Shield (server is a Windows PC). Unfortunately, this results in transcoding of both the video and the audio, with my server simply not being capable enough. The transcode reason is “TrueHD audio is not supported by the device”. I should note my setup is fairly simple and does not involve a sound system / receiver, i.e. Shield is hooked up to TV directly via HDMI and no other devices involved. I’m assuming my TV cannot decode TrueHD so passthrough is not an option.
Is this something that’s currently in development? Any chance the 6.15 update will fix this?
What exactly do you expect Plex to do about this? To avoid transcoding get an AV receiver capable of handling TrueHD & enjoy the audio as intended rather than dumbing down to stereo on your TV.
You need to have a device to decode TrueHD. Whatever system you try to play media from, it needs to support the media requirements or it get transcoded to fit your system.
To answer your questions, I would expect Plex to decode the audio or convert it to DD, much like Kodi would do. Kodi can “direct play” the same file with no issues.
@blahblah1239 said:
To answer your questions, I would expect Plex to decode the audio or convert it to DD, much like Kodi would do. Kodi can “direct play” the same file with no issues.
Plex already decodes the audio. The paradigm for Plex is client/server in which the server does the transcoding & the player is lightweight whereas for Kodi there is no server so it’s only ever going to decode audio in the player.
This doesn’t make much sense though. The end result is that the combination of a usb stick with media + Kodi on a cheap box can direct play a file perfectly fine, but an Intel Core i5 server + Nvidia Shield client running Plex cannot.
Also, the client is perfectly capable of handling the video stream, why is the audio triggering a transcode of both?
@blahblah1239 said:
This doesn’t make much sense though. The end result is that the combination of a usb stick with media + Kodi on a cheap box can direct play a file perfectly fine, but an Intel Core i5 server + Nvidia Shield client running Plex cannot.
Kodi cannot decode TrueHD audio & will not Direct Play it. Kodi does the same as the Plex player on the Nvidia Shield it passes the TrueHD digital bitstream over HDMI unchanged so you need to have a suitable receiver that will decode TrueHD audio. https://kodi.wiki/view/Audio_troubleshooting#Dolby_TrueHD
Also, the client is perfectly capable of handling the video stream, why is the audio triggering a transcode of both?
Because that’s the way it works. The audio & video is in one file not two so the whole file needs to be transcoded even if one stream within that file will remain unchanged.
But isn’t that exactly the point of decoding on the client? Is that it doesn’t trigger a transcode of both streams?
Bottom line is I’m able to play this file with Kodi but not with Plex.
Kodi actually has a setting for a “TrueHD capable receiver” and if switched off, will decode the audio stream locally.
oi44.tinypic.com/35mlgqo.jpg
The Plex app can decode some audio client side, but not TrueHD.
Because that’s the way it works. The audio & video is in one file not two so the whole file needs to be transcoded even if one stream within that file will remain unchanged.
Not true. We can copy one stream and transcode the other stream. There are some situations where this is not possible (i.e. subtitles). Would need to see the XML for that specific video and maybe the app logs to see why it had to transcode the video.
I was using subtitles, so perhaps that explains it? What should I look for in the XML?
There is a bug currently in Android that if you have subtitles and the file is not direct played, they have to be burned into the video or they go out of sync.
The XML will contain info on the codecs used. There may be a parameter out of spec. If your video is H264, the most common the the ref frames value. 1080p video has a limit of 4, so anything above that will trigger a transcode. Also the profile level. Some devices do not support all profile levels, so this could trigger a transcode. It’s always best to review your logs to see what is going on. Look for lines that start with “MDE:”. If a video cannot be direct played, these lines will tell you why. For example
DEBUG - XXXXX - audio.channels limitation applies: 6 > 2
DEBUG - MDE: Cannot direct stream audio stream due to profile or setting limitations
This indicates the audio is being transcoded due to the device only supporting 2 channels of audio, but the file containing 6.
Hey @“MovieFan.Plex” . Thanks for that info. Is the Android bug for subtitles being tracked somewhere? Who’s expected to fix it (ExoPlayer / Google / Plex?).
This thread seems to indicate this issue was fixed with the “new player” (aren’t you still using ExoPlayer v2?):
But that’s definitely not the case for me. Both video and audio streams are transcoding.
It direct plays when I select a different audio stream, so pretty sure it’s somehow related to that.
The problem was not fixed. The issue is the way the player, Exoplayer (1 or 2) handles HLS (what is used when transcoding or direct streaming) and subtitles.
What using Exoplayer 2 has allowed is for more codecs to be direct played so this situation is mitigated and should occur less. But when it does, like with TrueHD, subtitles still get burned in.
Is there an open issue for this in the ExoPlayer github project? If this were fixed, how long would it typically take to make it into Plex for Android?
Last question 
Is there a way to configure Plex to prefer the “direct play-able” audio stream, when there is more than one available?
Or just general prioritization of codecs - e.g. prefer DTS over TrueHD.
if other audio streams are available, you can manually select them in the player. If audio was causing the transcoding, then selecting a direct playable stream (typically the stereo mix), then that should help avoid transcoding.
I dont know of any way to make plex choose ‘direct playable’ other than remuxing your files to have the STEREO stream the first audio stream (ie instead of the surround mix)
Hi @“MovieFan.Plex”, could you please post a link to the github issue with ExoPlayer HLS and the subtitles going out of sync?
I think many here would be happy to upvote it!
Hey Plex team. Thanks again for all your awesome work.
Is there any chance we can get a link to the bug in ExoPlayer so we can upvote / follow-up with that team?
I’ve searched through their current list and couldn’t find anything, which worries me that perhaps they don’t even know about this bug. The subtitles are triggering a transcode of the video despite this being completely unnecessary.
@TeknoJunky said:
I dont know of any way to make plex choose ‘direct playable’ other than remuxing your files to have the STEREO stream the first audio stream (ie instead of the surround mix)
You don’t have to remux, just set the default flag for the desired audio track.
MKVToolNix’s Header Editor works for MKV files.
For mp4s, there is Subler, https://subler.org/, which is Mac only. Not aware of a similar tool for Windows.