Error playing videos on single Android device, others work fine

Server Version#: 1.20.1.3252
Player Version#: 8.5.2.20133

My problem is that one particular Android device in my household will not play certain videos. It used to, then stopped and I haven’t been able to figure it out. I think it seems to be whenever the video is required to be transcoded. Not sure if different video codecs (that still need to be transcoded) cause grief. The file I’m testing with is a 480p Main 10 HEVC, AAC 2.0, MKV.

The device can cast the video to a Chromecast fine. Other devices work fine with the video (web, another phone that is very similar model, other Android tablets, Chromecast). The “faulty” device is an OPPO AX5, and my device is an OPPO AX5s - very similar models; mine works, the other one doesn’t.

I have tried the obvious - restart, re-install app etc. No change. The error displayed in the app is “An error occurred while attempting to play this video. Please check your connection and try again.”
I have troubleshooted my wireless - getting about 200mbps on a local speed test hosted on the same server. I’ve even replaced the access point. I also tried setting the app quality settings down to 4mbps 720p and no change.

It definitely seems to just be localised to this one device. Everything else is flawless. I have hardware transcoding enabled, and this works fine for other devices.

The Plex Server is a Docker container on a Ubuntu host, running in an ESXi VM. I’m using a tenth-gen Intel i3, and the GPU is passed through to the VM. As above, this is working fine for all other platforms.

I’ve attached both log files of non-working and working. They are only minutes apart. I tried to compare the log files but there is quite a lot of difference, which I’m not sure could be related to my problems.
For instance;

  • Both logs come up with “Request: [192.168.10.108:49080 (Allowed Network (WAN))” - not sure why this is, I’ve defined my local LAN subnet; why does it say WAN?
  • On non-working I see this - “TPU: hardware transcoding: enabled, but no hardware decode accelerator found”
  • And, a few lines later I see this - “TPU: hardware transcoding: final decoder: , final encoder:”
  • However, on the working example I get this - “TPU: hardware transcoding: using hardware decode accelerator vaapi” and “TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi” and it also does some tests; “Codecs: hardware transcoding: testing API vaapi”
  • I do not see the non-working log show the “testing API vaapi” bit.

So, this leads me to think that when the non-working device attempts to play a file that requires transcoding, that PMS cannot use the GPU (vaapi) and the working one can. But, what has me confused more is that on the non-working device it is repeatable 100% of the time, and on other devices it works fine 100% of the time. If it some weirdness going on with GPU passthru, or something else using the GPU (I am running Tdarr, but it’s scheduled off during above tests) I’d expect the problems to be intermittent.

Really hoping that someone can check through these logs and provide some insight of explanation as to what’s happening here.

Thanks in advance,not working Android.txt (52.6 KB) working Android.txt (167.3 KB)

See attached client logs from the device with issues.

Seeing this, which I’m not sure should be expected;

09-04 15:48:19.770  e: [ExoPlayer][EventLogger] playerFailed [3.99, 1001.00, window=0]
09-04 15:48:19.771  e: An exception occurred: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
09-04 15:48:19.774  e: Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
	at com.google.android.exoplayer2.u.handleMessage(SourceFile:24)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:198)
	at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2632)
	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(SourceFile:9)
	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:8)
	at com.google.android.exoplayer2.u.e(SourceFile:14)
	at com.google.android.exoplayer2.u.handleMessage(SourceFile:17)
	... 3 more

09-04 15:48:19.774  e: [Player][ExoPlayer] Playback error detected
09-04 15:48:19.774  e: An exception occurred: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
09-04 15:48:19.776  e: Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: java.lang.IllegalStateException
	at com.google.android.exoplayer2.u.handleMessage(SourceFile:24)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:198)
	at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: java.lang.IllegalStateException
	at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
	at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2632)
	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(SourceFile:9)
	at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(SourceFile:8)
	at com.google.android.exoplayer2.u.e(SourceFile:14)
	at com.google.android.exoplayer2.u.handleMessage(SourceFile:17)
	... 3 more

client log.txt (70.8 KB)

So, I kept playing with this.

Perhaps it is a bandwidth thing. I had to set the client to the lowest bandwidth setting available - 240p 300kbps or something and it worked!

I then set the setting to adjust based on available bandwidth and watched in Tautulli. It looked like it would scale up to 1.5mbps and not go any higher.

Interestingly the bandwidth graphs in Plex did not reflect the bandwidth reported in Tautulli or the settings in the client app. It was a few days ago I changed this and watched it, but the bandwidth usage was much higher in the Plex Dashboard graphs than the expected 300kbps, or 1.5mbps.

It was about this time that I noticed this client was on 2.4GHz and not 5GHz. Turns out it doesn’t support the 5GHz band (disappointing). Unfortunately, this client is only getting about 50mbps throughput to the server on wireless, which is pretty poor in my opinion. I can’t nail down why 2.4GHz is so bad - it isn’t exactly crowded where I am - the other talkers in this band should be fairly attenuated. But, I guess it is what it is - not like there’s a lot of channels to play around with here.

Another thing I observed was that when the Auto Quality setting was checked, the client wouldn’t seem to scale down (with Quality set to default Recommended). It was happy to seemingly scale up from 240p though. (According to what Tautulli would report back, as Plex Dashboard doesn’t actually report this level of detail for an in progress stream).

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