Unable to playback 50fps content on Android TV

Server Version#:1.20.4.3517
Player Version#: 8.10.0.21860

I’ve noticed recently that the Plex beta player on Shield TV is unable to play back 50fps content. This issue started at least a couple of weeks ago.

Any attempts to play the 50fps video results in a content cannot be played error. I have tried the same content on two different servers and received the same error. The content can be played back without issue via the WebUI. It appears the problem is with the Plex beta player.

Is this a known issue?

Similar problem here, 50fps material, e.g. Top Gear, no longer play on my Shield 2017 or 2019 models.
Same content used to play, something changed that broke playback, same content still plays fine over web player.

1 Like

Is anyone able to playback 50fps content? Curious if it’s broken for all

Just ran into this issue tonight and a web search brought me here. I’m seeing this same error message trying to play 50 fps content on both my nVidia Shield and on my Firestick 4K.

As others have noted, the files play on the WebUI (and via desktop players like VLC) so it’s looks like an issue with Plex on these Android based clients.

I should add that I was able to play these titles using the Plex client in Kodi on these same boxes.

2 Likes

As we now have three people with the same issue, how do we raise this with the Plex team?

It would still be great to get some more feedback on this. Can anyone with 50fps content please do a quick test for us, using the Plex app on an Android TV device?

Hi I’m running into the same issue since 2 weeks with my Nvidia Shield 2017 and my amazon Firestick TV 4k

1 Like

Thanks for confirming @iksrats

So that’s four confirmed now, all android TV boxes.

Can anyone from the Plex team chime in?

Can we get some kind of confirmation that this is an official bug? It seems quite major that Plex on Android TV devices cannot play 50fps content!

No one has yet chimed in to say they do have it working for them, so I’m presuming this is affecting everyone!

I had to reburn all my 50 fps content to 25 fps, then it worked. That was literally 300 + episodes of Thomas the Tank engine. This has been a problem for months, I did that about 6 months ago.

1 Like

Wow! That’s quite ridiculous that you had to do that to play back your content. Once again, was this just a problem via the Plex app on an Android TV device?

Was specific to the TV, they worked on one TV but not the other, the problem was with an older Samsung tv. I re-burned them to make them more compatible.

Any update, this is still happening?

Any update?
Just to be clear, 50fps 1080p content used to play, and then between a Plex or Shield update no longer plays.

This issue is also present on my Android smartphone. (OnePlus Nord)

Having this issue as well on NVIDIA Shield 2019. Can’t get playback on 50fps content. Sometimes it’ll transcode but it’ll stutter constantly.

Using one of the more recent Android tv beta and have some 50fps videos and unable to play as well. I tried on my android phone and same issue.

Same issue with playing certain 50fps content on shield 2017

Works fine with iOS, windows, fire tv or web players. Only fails on shield

Player 8.14.1.23548
Pms 1.22.1.4200 (win)

I noticed some additional weird behavior.
Tog Gear S30 EP01, played half way and I got interrupted, I continued the next day, and same old problem.
Tog Gear S30 EP02, never played, same problem.

As before, something changed that broke playback, maybe the error is dependent on some Plex state?

I tested on a Samsung TV with a new 2019 Shield Pro, and two LG TV’s with 2017 Shield’s.
Web playback works.

Plex Server Logs: Plex Server 50fps - Pastebin.com
Plex Server Media Info: Media Info - Pastebin.com
Plex Shield Client Logs: https://pastebin.com/4n5LT3De

Client Crash:

03-24 17:49:05.222  e: [ExoPlayer][EventLogger] playerFailed [eventTime=9.68, mediaPos=1499.00, window=0, period=0
  com.google.android.exoplayer2.ExoPlaybackException: Source error
      at com.google.android.exoplayer2.l0.handleMessage(SourceFile:37)
      at android.os.Handler.dispatchMessage(Handler.java:102)
      at android.os.Looper.loop(Looper.java:193)
      at android.os.HandlerThread.run(HandlerThread.java:65)
  Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IndexOutOfBoundsException: Index: 0, Size: 0
      at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:26)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
      at java.lang.Thread.run(Thread.java:764)
  Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
      at java.util.ArrayList.get(ArrayList.java:437)
      at com.plexapp.plex.ff.data.BaseStream.toString(SourceFile:6)
      at com.plexapp.plex.ff.data.VideoStream.toString(SourceFile:5)
      at com.plexapp.plex.ff.FFDemuxer.demux(SourceFile:13)
      at com.plexapp.plex.ff.source.FFLoadable.load(SourceFile:13)
      at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:6)
      ... 3 more
]
03-24 17:49:05.222  e: [Player][ExoPlayer] Playback error detected
03-24 17:49:05.223  i: [Player][Timeline] Handling player error
03-24 17:49:05.223  i: [Player][Timeline] Playback stopped (error: true)
03-24 17:49:05.224  i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
03-24 17:49:05.224  i: [Player] Error reported: UnknownError (null)
03-24 17:49:05.224  i: [Player][Timeline] Playback stopped (error: false)
03-24 17:49:05.225  e: An exception occurred: com.google.android.exoplayer2.ExoPlaybackException: Source error
03-24 17:49:05.225  e: Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: Source error
	at com.google.android.exoplayer2.l0.handleMessage(SourceFile:37)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:193)
	at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IndexOutOfBoundsException: Index: 0, Size: 0
	at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:26)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
	at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.get(ArrayList.java:437)
	at com.plexapp.plex.ff.data.BaseStream.toString(SourceFile:6)
	at com.plexapp.plex.ff.data.VideoStream.toString(SourceFile:5)
	at com.plexapp.plex.ff.FFDemuxer.demux(SourceFile:13)
	at com.plexapp.plex.ff.source.FFLoadable.load(SourceFile:13)
	at com.google.android.exoplayer2.upstream.Loader$d.run(SourceFile:6)
	... 3 more

03-24 17:49:05.227  i: [TranscodeSession] Stopping...

FfMpeg Warning in client logs:

03-24 17:48:58.076  i: [FFmpeg] [WARN] [AVBSFContext @ 0x24039abec0] Warning: SPS NALU missing or invalid. The resulting stream may not play.
03-24 17:48:58.076  i: [FFmpeg] [WARN] [AVBSFContext @ 0x24039abec0] Warning: PPS NALU missing or invalid. The resulting stream may not play.

But, testing the MKV file using FfMpeg produces no warnings and no errors:

./ffmpeg.exe -i "Top Gear - S30E01 - Episode 1.mkv" -f null -
ffmpeg version 4.3.2-2021-02-27-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev6, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, matroska,webm, from 'Top Gear - S30E01 - Episode 1.mkv':
  Metadata:
    encoder         : Lavf58.42.100
  Duration: 01:01:32.04, start: 0.000000, bitrate: 10552 kb/s
    Chapter #0:0: start 3665.000000, end 3692.040000
    Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 1k tbn, 100 tbc (default)
    Stream #0:1(eng): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> wrapped_avframe (native))
  Stream #0:1 -> #0:1 (aac (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf58.45.100
    Chapter #0:0: start 3665.000000, end 3692.040000
    Stream #0:0(eng): Video: wrapped_avframe, yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 50 fps, 50 tbn, 50 tbc (default)
    Metadata:
      encoder         : Lavc58.91.100 wrapped_avframe
    Stream #0:1(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      encoder         : Lavc58.91.100 pcm_s16le
frame=184602 fps=888 q=-0.0 Lsize=N/A time=01:01:32.04 bitrate=N/A speed=17.8x
video:96628kB audio:692256kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Please fix this, and please include 50fps / UK HD content in your test corpus to prevent regressions.

Interesting, this post describes a similar problem, noting playback stops after media analysis:

@BigWheel - wondering if you can take a look at this issue with 50fps videos