Here is some useful information regarding the limitations / bugs of the current Plex for Android TV client.
Device - Nvidia SHIELD TV AVR - Yamaha RX-V675 (5.1) via HDMI / CEC / ARC Direct Play - Auto Direct Stream - Auto Passthrough - Auto Burn Subtitles - Automatic Refresh Rate Switching - ON Local Quality - Original Quality Remote Quality - Original Quality
Supported Formats inside the Plex client on Nvidia SHIELD TV (see spoiler):
Currently Unsupported formats inside the Plex client on Nvidia SHIELD TV (see spoiler):
!Containers: .AVI (forces video transcode, audio can direct play) .M2TS (Unlikely to be fixed.)
!AUDIO: DTS-HD High Resolution Audio (HRA) | ANY 4.1 |
FIXED ISSUES:
*Lack of VC-1 support.FIXED.
*Lack of TrueHD / Atmos / DTS: X. Now supported with the 3.3 update.
*Lack of LPCM support. 8 | 16 | 24bit now supported. FIXED.
*Some DTS-HD MA files playing back as DTS core.This appears to be fixed for me after reanalyzing. Noticed files were showing DTS for DCA-MA.
*Lack of FLAC 5.1 support.FIXED with 5.8.0.454-beta.
*Stuttering / frame drops after fast forwarding.FIXED with ExoPlayer update.
*Stuttering on 24p playback. (pausing and resuming seems to fix TEMPORARILY)FIXED with ExoPlayer update.
*Headphones disconnected popup upon starting / stopping media.FIXED.
*Subtitles looping / out of sync.99% sure this was fixed with client update.
*Lack of PGS subtitle support within MKV containers.FIXED.
*Lack of media info in preplay screen, i.e. audio codec, resolution. FIXED. Audio codec / resolution implemented in v4.32.0.363.
*Lack of audio / subtitle selection before playback.FIXED.
DTS-HD MA 6.1 tracks pass only core DTS (1500kbps) stream when they should pass full DTS-HD MA stream. Resolved with Nvidia SHIELD Experience 5.2 update preview. DTS-ES 6.1 is also passedthrough correctly.
*VC-1 transcoded when a supported audio codec is not found i.e. w/TrueHD. See spoiler for details.
!Ian’s Reply: ‘ExoPlayer only natively supports VC1 when contained within MKV. This means that when we transcode, we can’t handle >!remuxed VC1 in HLS. I looked at how much effort it would be to support this, but at the moment it’s hard to justify due to the number >!of devices (and users) that actually support and use VC1. I’ve already made the recommendation to NVIDIA that they look to add >!support themselves, which we’d then pick up. **No longer an issue thanks to TrueHD now being supported! **’
Pausing an episode of a series during continuous episode playback doesn’t display details of current episode after waking from sleep, the first episode played is detailed. Incorrect UI issue. See spoiler for details.
! @Andrroid: “I just watched 3 episodes of a show. During the 4th episode, I paused it. I waited. Eventually, the Android TV screensaver >!appeared. I then pressed a button on my remote, which ended the screen saver and returned me to Plex. However, I was placed at the >!details screen for the first episode I watched, not the current, 4th episode, I was watching.”
!Quote from @jesusMC “@Andrroid Hey, sorry for the delay!
! Yeah, that issue should be fixed as part of 5.6.0. Could you check that it works correctly for you?
! Thanks in advance!”
!
! This does not appear to be the case and is not fixed according to beta tester @Andrroid.
UNAVOIDABLE (UNTIL NVIDIA / GOOGLE FIX EXOPLAYER) ISSUES:
Lack of .AVI container support. (Video and audio is always transcoded, despite being MPEG4 / AC3 audio, something that should be able to be direct played or direct streamed at the very least. **Ian Reply: “I spoke to the server/transcoder team and they confirmed that they have had to blacklist mpeg4 video from AVI files to prevent them from ever being remuxed. Apparently they have had a lot of issues with this combination in the past and have found the only reliable way to stream the video is to perform a full remux. This means that unless Google, or someone else adds AVI support to ExoPlayer, MPEG4 will be transcoded when contained within an AVI on the Android client.”
Pressing the play key (HDMI-CEC, Harmony, Nexus Player remote) does nothing on posters of movies/episodes/tv shows/seasons. Ian’s Reply: “Known feature that we haven’t yet implemented. We should be allowing users to skip preplay pages, etc if they hit a “Play” button. The reason it hasn’t been prioritized is that only a few Android TVs actually have a Play button on the remote.”
LIMITATIONS:
Lack of thorough USB amp support.
Unable to decode all audio formats as LPCM when Audio Passthrough is disabled. Side note: A new Android TV beta has enabled software decoding for AAC_LATM as seen on DVR recording with more formats “to come in the future”, paraphrasing @sixones comments.
.m2ts container is unsupported. Unlikely to be fixed as disc based formats. Plex do not want to use disc-based formats.
MPEG-TS containers are unsupported and provide unexpected results. DVR users will want to enable remux to MKV or use an appropriate post-processing conversion script. As of PMS 1.7.1, Plex now recorded to .MKV containers directly instead of .TS presumably for better compatibility.
NOTABLE CHANGES:
Plex for Android 5.10.0.55-beta - Upgrade ExoPlayer to r1.5.16. (I believe we were at custom ExoPlayer r1.5.12 previously)
Lack of considered ‘normal’ FF / RW. ExoPlayer limitation according to devs but not according to @drhill?
According to an employee I have spoken with, its not so much a limitation as it is a design decision. Apparently FF/RW is the recommended way to do it from Google. They could in theory put in fixed seek increments (30s skip forward, 20s skip back), but they don’t like the idea of having to click a lot of times I guess? The solution here is to do it like the Fire TV where quick successions increase the skip increments. But then we’re back to “Google recommends FF/RW as it is currentlyimplemented.”
I would also like to add the bug about continuous playback that I have posted here
This is extremely frustrating if you take a bathroom break after watching 5+ episodes. When you return, and you wake the device from daydream, you are brought back to the first episode you started at, requiring you to either back out to the show page and find the current episode, or skip forward via the arrow on the right.
Pressing the play key (HDMI-CEC, Harmony, Nexus Player remote) does nothing on posters of movies/episodes/tv shows/seasons. Someone let me know about this?
I am using both the Harmony remote and the Amazon Fire Stick remotes and pressing “Play” does nothing as stated.
The remotes seem to work fine otherwise but the “Play” does nothing no matter where it is used.
I think it would be good, and correct, if play is pressed whenever a particular episode or movie is highlighted if it acted just like “OK” was pressed twice. That is the highlighted video simply started playing. That is how “Play” works in every other Plex app I use. I use Roku, Raspberry PI (PMP), computer (OpenPHT) and the Fire TV as well as the Shield now.
One thing further in testing I have discovered that the “Play” button on my Harmony does work in the “PrePlay” screen just like pressing “OK” but the Fire Stick Remote" does not. However “Play” on the Stick’s remote does work to pause and restart playback once playback is actually started by other means.
I’ve been asked by the op for an update so here goes for the open items from the first post.
PCM. All bitrates should now be supported. Give me an example if you see this isn’t working.
VC-1 transcoding. VC-1 should be direct playable depending on the player. It worked in my testing on the Shield. I don’t know any other Android TV box that supports VC-1.
DTS-HS MA passthrough. I’m not aware of any Android TV box that can pass through DTS-HD MA. Some can pass through the core only. i could be wrong but I would need specific make and model of a device to check.
Subtitle loop. I’m not aware of this one. I need more details. I use srt subs and they work.
Media Info. Still a work in progress. No news to share.
FF/REW. Not a bug or a player limitation but a design decision.
Play button. This hasn’t been implemented yet. It’s on the todo list.
Player jumping. I missed this one. Let me look into this.
@MovieFan.Plex said:
I’ve been asked by the op for an update so here goes for the open items from the first post.
PCM. All bitrates should now be supported. Give me an example if you see this isn’t working.
VC-1 transcoding. VC-1 should be direct playable depending on the player. It worked in my testing on the Shield. I don’t know any other Android TV box that supports VC-1.
DTS-HS MA passthrough. I’m not aware of any Android TV box that can pass through DTS-HD MA. Some can pass through the core only. i could be wrong but I would need specific make and model of a device to check.
Subtitle loop. I’m not aware of this one. I need more details. I use srt subs and they work.
Media Info. Still a work in progress. No news to share.
FF/REW. Not a bug or a player limitation but a design decision.
Play button. This hasn’t been implemented yet. It’s on the todo list.
Player jumping. I missed this one. Let me look into this.
The Nvidia SHIELD TV is the device I am referring to as that is the device the majority of Android TV box owners use and also the one I own and use. DTS-HD MA is supported on this device and an update was released a little while ago to enable this. Here is my update to you, if you’d pass this along to the Android TV devs I’d really appreciate it. I would like to see testing helping to fix the issues with the app currently and will provide all the time I can to doing so. Time of network logging is included. Please ask if you require any further information. All tests where conducted using the latest 4.30.0.60 beta app.
VC-1 / TrueHD - 08:55AM - Audio transcodes as expected, video also trancodes which SHOULD NOT be the case, especially given the fact it Direct Plays when it’s VC-1 / DTS-HD MA.
Sample: Dropbox - VC1_TrueHD_BAD.mkv - Simplify your life
Thanks for the thorough write up. To respond to some of the remaining points, with my own summary and thoughts…
Lack of LPCM support. 8/24bit transcodes to AAC, 16bit supported.
8/24 bit LPCM should be supported already now.
Lack of TrueHD support.
Known, we’re working with NVIDIA and Google on this.
VC-1 transcoded when a supported audio codec is not found i.e. 8/24bit LPCM / TrueHD
ExoPlayer only natively supports VC1 when contained within MKV. This means that when we transcode, we can’t handle remuxed VC1 in HLS. I looked at how much effort it would be to support this, but at the moment it’s hard to justify due to the number of devices (and users) that actually support and use VC1. I’ve already made the recommendation to NVIDIA that they look to add support themselves, which we’d then pick up.
Some DTS-HD MA files playing back as DTS core.
I’d guess that PMS isn’t picking up that the audio is DTS-HD MA? ExoPlayer is unable to detect the HD extension in the bitstream, so we rely on PMS telling the application before hand. You could check the profile attribute in the XML from your server to see.
Subtitles looping / out of sync
Unknown issue. Please provide samples to reproduce.
Lack of media info in preplay screen, i.e. resolution.
Our designer knows about this and is still trying to identify the best place to add this information.
Lack of considered ‘normal’ FF / RW
Agreed, we have already agreed internally the changes we want to make. We just haven’t had time to schedule the work.
Pressing the play key (HDMI-CEC, Harmony, Nexus Player remote) does nothing on posters of movies/episodes/tv shows/seasons.
Known feature that we haven’t yet implemented. We should be allowing users to skip preplay pages, etc if they hit a “Play” button. The reason it hasn’t been prioritised is that only a few Android TVs actually have a Play button on the remote.
Player jumping 24 hours in the future.
This is likely an issue with the video player handling some characteristic of the media. If we can be provided a sample file, we can likely report back to Google.
Can you provide more info on how to find this xml. For me when I encode in handbrake if I set everything up identical but set the container to .mp4 then my receiver will display dts-hd as dts but if I only change the container to mkv it will display as dts-hd
"Some DTS-HD MA files playing back as DTS core.
I’d guess that PMS isn’t picking up that the audio is DTS-HD MA? ExoPlayer is unable to detect the HD extension in the bitstream, so we rely on PMS telling the application before hand. You could check the profile attribute in the XML from your server to see."
I think I figured it out. It is just using the basic Android profile, not sure why there would not be a Shield TV specific profile since it has different capabilities. I did notice when it plays a .MP4 file with DTS-HD i get a ton of these in the log file.
g 08, 2016 17:12:42.521 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.521 [15644] DEBUG - Selecting best audio stream for part ID 173000 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.521 [15644] DEBUG - Audio Stream: 280710, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173001 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280712, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173002 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280714, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173003 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280716, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173004 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280718, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173005 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280720, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173006 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280722, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Selecting best audio stream for part ID 173007 (autoselect: 1 language: en)
Aug 08, 2016 17:12:42.537 [15644] DEBUG - Audio Stream: 280724, Subtitle Stream: -1
Aug 08, 2016 17:12:42.537 [15644] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Notice the profile is listed as ma which lets the client know it needs to configure the passthrough audio to be DTS-HD rather than just DTS.
If you find that for some movies, that profile is missing and you know it’s DTS-HD, maybe try to “Re-analyze” the movie (which can be done via Plex/Web)?
@BRBMan - Ah, so the problems are specific to when the DTS-HD is contained within MP4? If so, any chance that you can provide a sample file for me to take a look at? Our video player’s MP4 extractor should technically support DTS-HD but apparently is not identifying it appropriately. If you can provide a sample, I can report it to Google and see if we can get it fixed.