"Unable to play media" on Android TV

Server Version#:1.42.2.10156
Player Version#:10.30.6.4151 (f1455a3f) Android TV Set-top box (but works same way on an Android TV as well)

Good day,
I’ve downloaded some media, but on my Android TV, no matter if TV or a Set-top box) I get “Unable to play media” message when I try to play those files. The media plays just fine on PC or Android phone. The media is 480i, so I doubt the resolution wil be the problem. Also the player is connected to the same switch as the PMS PC, which is quite powerful. Other media play just fine, and that includes some 10 bit 4K HEVC files, that are way more challenging.

Here is the MediaInfo of the file I’ve used for the test: 'Allo 'Allo! - S01E02 - Pigeon Post.mkv.MediaInfo.txt (5.1 KB)

Here are the logs from PMS when hitting “Play” on that file.
Nov 11, 2025 17:23:17.097 [54500] Debug — Request: [127.0.0.1:58345 (Loopback)] GET /media/providers (15 live) #4353 GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:17.098 [19316] Debug — Completed: [127.0.0.1:58345] 200 GET /media/providers (15 live) #4353 GZIP 1ms 5862 bytes (pipelined: 19)
Nov 11, 2025 17:23:17.167 [18664] Debug — Request: didn’t get any data from [::ffff:192.168.0.206]:53933: End of file
Nov 11, 2025 17:23:19.727 [45956] Debug — Request: [192.168.0.23:56848 (Subnet)] GET /library/metadata/1207?asyncAugmentMetadata=1&checkFiles=1&includeExtras=1&includeReviews=1 (14 live) #43c3 TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:19.729 [45956] Debug — We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:19.729 [45956] Debug — Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:19.729 [45956] Debug — We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:19.729 [45956] Debug — Subtitles: Found a candidate subtitle language for a foreign film
Nov 11, 2025 17:23:19.729 [45956] Debug — Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:19.730 [19316] Debug — Completed: [192.168.0.23:56848] 200 GET /library/metadata/1207?asyncAugmentMetadata=1&checkFiles=1&includeExtras=1&includeReviews=1 (14 live) #43c3 TLS GZIP 2ms 3188 bytes (pipelined: 4)
Nov 11, 2025 17:23:19.879 [45956] Debug — Request: [192.168.0.23:54982 (Subnet)] GET /library/metadata/1207?includeRelated=1&includeLoudnessRamps=1&includeChapters=1&includeMarkers=1 (14 live) #42b2 TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:19.880 [45956] Debug — We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:19.880 [45956] Debug — Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:19.880 [45956] Debug — We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:19.880 [45956] Debug — Subtitles: Found a candidate subtitle language for a foreign film
Nov 11, 2025 17:23:19.880 [45956] Debug — Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:19.883 [18664] Debug — Completed after connection close: [192.168.0.23:54982] 200 GET /library/metadata/1207?includeRelated=1&includeLoudnessRamps=1&includeChapters=1&includeMarkers=1 (14 live) #42b2 TLS GZIP 3ms 0 bytes (pipelined: 15)
Nov 11, 2025 17:23:19.923 [45956] Debug — Request: [192.168.0.23:60912 (Subnet)] GET /library/metadata/1207?includeRelated=1&includeLoudnessRamps=1&includeChapters=1&includeMarkers=1 (14 live) #43cc TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:19.926 [45956] Debug — We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:19.926 [45956] Debug — Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:19.926 [45956] Debug — We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:19.926 [45956] Debug — Subtitles: Found a candidate subtitle language for a foreign film
Nov 11, 2025 17:23:19.926 [45956] Debug — Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:19.929 [18664] Debug — Completed: [192.168.0.23:60912] 200 GET /library/metadata/1207?includeRelated=1&includeLoudnessRamps=1&includeChapters=1&includeMarkers=1 (14 live) #43cc TLS GZIP 5ms 3241 bytes (pipelined: 1)
Nov 11, 2025 17:23:19.962 [45956] Debug — Request: [192.168.0.23:56848 (Subnet)] GET /library/metadata/1207?checkFiles=1&includeChapters=1 (14 live) #43dd TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:19.964 [45956] Debug — We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:19.964 [45956] Debug — Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:19.964 [45956] Debug — We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:19.964 [45956] Debug — Subtitles: Found a candidate subtitle language for a foreign film
Nov 11, 2025 17:23:19.964 [45956] Debug — Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:19.965 [18664] Debug — Completed: [192.168.0.23:56848] 200 GET /library/metadata/1207?checkFiles=1&includeChapters=1 (14 live) #43dd TLS GZIP 3ms 3174 bytes (pipelined: 5)
Nov 11, 2025 17:23:20.168 [19316] Debug — Request: didn’t get any data from [::ffff:192.168.0.206]:53934: End of file
Nov 11, 2025 17:23:20.173 [54500] Debug — Request: [192.168.0.23:56848 (Subnet)] GET /video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&autoAdjustSubtitle=1&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=157248&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F1207&protocol=&session=9a509e1312540fd1-com-plexapp-android&subtitles=burn&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160 (15 live) #440b TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:20.173 [54500] Debug — [Req#440b/Transcode] Found session GUID of 9a509e1312540fd1-com-plexapp-android in session start.
Nov 11, 2025 17:23:20.174 [54500] Debug — [Req#440b/Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=51)+add-limitation(scope=videoCodec&scopeName=
&type=upperBound&name=video.width&value=3840&replace=true)+add-limitation(scope=videoCodec&scopeName=&type=upperBound&name=video.height&value=2160&replace=true)+add-limitation(scope=videoCodec&scopeName=hevc&type=notMatch&name=video.DOVIProfile&value=5)+add-transcode-target(type=videoProfile&context=streaming&protocol=hls&container=mkv&videoCodec=h264,hevc,mpeg2video&audioCodec=aac_latm,aac,aac,ac3,alac,dca,dca,dca,eac3,flac,mp1,mp2,mp3,opus,vorbis,wmav1,wmav2,wmalossless,wmapro,wmavoice&subtitleCodec=ass,pgs,subrip,dvd_subtitle,mov_text,vtt,dvb_subtitle&replace=true)+add-transcode-target-settings(type=videoProfile&context=streaming&protocol=hls&CopyMatroskaAttachments=true)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=upperBound&name=audio.channels&value=8&replace=true)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=mp3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=ac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=eac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=dca)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=opus)+add-limitation(scope=videoCodec&scopeName=&type=NotMatch&name=video.anamorphic&value=999&replace=true)+add-transcode-target(type=subtitleProfile&context=streaming&protocol=http&container=mkv&subtitleCodec=srt)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=mpeg2video)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=hevc)+add-limitation(scope=videoCodec&scopeName=hevc&type=Match&name=video.profile&list=main|main 10)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=match&name=video.colorTrc&list=bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10&isRequired=false)
Nov 11, 2025 17:23:20.174 [54500] Debug — [Req#440b/Transcode] TranscodeUniversalRequest: using augmented profile Android
Nov 11, 2025 17:23:20.174 [54500] Debug — [Req#440b/Transcode] Downloading document ``http://127.0.0.1:32400/library/metadata/1207?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=9a509e1312540fd1-com-plexapp-android
Nov 11, 2025 17:23:20.177 [54500] Debug — [Req#440b/Transcode] We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:20.177 [54500] Debug — [Req#440b/Transcode] Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:20.177 [54500] Debug — [Req#440b/Transcode] We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:20.177 [54500] Debug — [Req#440b/Transcode] Subtitles: Found a candidate subtitle language for a foreign film
Nov 11, 2025 17:23:20.177 [54500] Debug — [Req#440b/Transcode] Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: Selected protocol hls; container: mkv
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: analyzing media item 1388
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: E2 - Pigeon Post: Direct Play is disabled
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: E2 - Pigeon Post: media must be transcoded in order to use the hls protocol
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: E2 - Pigeon Post: selected subtitle cannot be converted to a compatible format, burning into video stream
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: E2 - Pigeon Post: avoiding video remux due to burned subtitle stream
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: E2 - Pigeon Post: no remuxable profile found, so video stream will be transcoded
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: Cannot direct stream video stream due to profile or setting limitations
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] MDE: 'Allo 'Allo! - S1 E2 - Pigeon Post: selected media 0 / 1388
Nov 11, 2025 17:23:20.179 [54500] Debug — [Req#440b/Transcode] Streaming Resource: Reached Decision id=1207 codes=(General=2000,Neither direct play nor conversion is available. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=4002,Not enough CPU for conversion of this item.)
Nov 11, 2025 17:23:20.180 [19316] Debug — Completed: [192.168.0.23:56848] 200 GET /video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&autoAdjustSubtitle=1&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=157248&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F1207&protocol=&session=9a509e1312540fd1-com-plexapp-android&subtitles=burn&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160 (15 live) #440b TLS GZIP 6ms 682 bytes (pipelined: 6)
Nov 11, 2025 17:23:20.399 [54500] Debug — Request: [192.168.0.23:56848 (Subnet)] GET /library/metadata/1207?checkFiles=1&includeChapters=1 (15 live)
#443b TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:20.402 [54500] Debug — We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:20.402 [54500] Debug — Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:20.402 [54500] Debug — We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:20.402 [54500] Debug — Subtitles: Found a candidate subtitle language [] for a foreign film
Nov 11, 2025 17:23:20.402 [54500] Debug — Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:20.403 [19316] Debug — Completed: [192.168.0.23:56848] 200 GET /library/metadata/1207?checkFiles=1&includeChapters=1 (15 live)
#443b TLS GZIP 3ms 3174 bytes (pipelined: 7)
Nov 11, 2025 17:23:20.654 [54500] Debug — Request: [192.168.0.23:56848 (Subnet)] GET /video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&autoAdjustSubtitle=1&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=157248&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F1207&protocol=
&session=9a509e1312540fd1-com-plexapp-android&subtitles=burn&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160 (15 live) #444a TLS GZIP Signed-in Token (Spiderm@n)
Nov 11, 2025 17:23:20.654 [54500] Debug — [Req#444a/Transcode] Found session GUID of 9a509e1312540fd1-com-plexapp-android in session start.
Nov 11, 2025 17:23:20.654 [54500] Debug — [Req#444a/Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=51)+add-limitation(scope=videoCodec&scopeName=&type=upperBound&name=video.width&value=3840&replace=true)+add-limitation(scope=videoCodec&scopeName=&type=upperBound&name=video.height&value=2160&replace=true)+add-limitation(scope=videoCodec&scopeName=hevc&type=notMatch&name=video.DOVIProfile&value=5)+add-transcode-target(type=videoProfile&context=streaming&protocol=hls&container=mkv&videoCodec=h264,hevc,mpeg2video&audioCodec=aac_latm,aac,aac,ac3,alac,dca,dca,dca,eac3,flac,mp1,mp2,mp3,opus,vorbis,wmav1,wmav2,wmalossless,wmapro,wmavoice&subtitleCodec=ass,pgs,subrip,dvd_subtitle,mov_text,vtt,dvb_subtitle&replace=true)+add-transcode-target-settings(type=videoProfile&context=streaming&protocol=hls&CopyMatroskaAttachments=true)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=upperBound&name=audio.channels&value=8&replace=true)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=mp3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=ac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=eac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=dca)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=opus)+add-limitation(scope=videoCodec&scopeName=&type=NotMatch&name=video.anamorphic&value=999&replace=true)+add-transcode-target(type=subtitleProfile&context=streaming&protocol=http&container=mkv&subtitleCodec=srt)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=mpeg2video)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=hevc)+add-limitation(scope=videoCodec&scopeName=hevc&type=Match&name=video.profile&list=main|main 10)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=match&name=video.colorTrc&list=bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10&isRequired=false)
Nov 11, 2025 17:23:20.654 [54500] Debug — [Req#444a/Transcode] TranscodeUniversalRequest: using augmented profile Android
Nov 11, 2025 17:23:20.654 [54500] Debug — [Req#444a/Transcode] Downloading document ``http://127.0.0.1:32400/library/metadata/1207?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=9a509e1312540fd1-com-plexapp-android
Nov 11, 2025 17:23:20.656 [54500] Debug — [Req#444a/Transcode] We’re going to try to auto-select an audio stream for account 1.
Nov 11, 2025 17:23:20.656 [54500] Debug — [Req#444a/Transcode] Selecting best audio stream for part ID 1395 (language: xn)
Nov 11, 2025 17:23:20.656 [54500] Debug — [Req#444a/Transcode] We’re going to try to auto-select a subtitle for account 1.
Nov 11, 2025 17:23:20.656 [54500] Debug — [Req#444a/Transcode] Subtitles: Found a candidate subtitle language [] for a foreign film
Nov 11, 2025 17:23:20.656 [54500] Debug — [Req#444a/Transcode] Audio Stream: 5305, Subtitle Stream: 5304
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: Selected protocol hls; container: mkv
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: analyzing media item 1388
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: E2 - Pigeon Post: Direct Play is disabled
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: E2 - Pigeon Post: media must be transcoded in order to use the hls protocol
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: E2 - Pigeon Post: selected subtitle cannot be converted to a compatible format, burning into video stream
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: E2 - Pigeon Post: avoiding video remux due to burned subtitle stream
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: E2 - Pigeon Post: no remuxable profile found, so video stream will be transcoded
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: Cannot direct stream video stream due to profile or setting limitations
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] MDE: 'Allo 'Allo! - S1 E2 - Pigeon Post: selected media 0 / 1388
Nov 11, 2025 17:23:20.657 [54500] Debug — [Req#444a/Transcode] Streaming Resource: Reached Decision id=1207 codes=(General=2000,Neither direct play nor conversion is available. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=4002,Not enough CPU for conversion of this item.)
Nov 11, 2025 17:23:20.657 [19316] Debug — Completed: [192.168.0.23:56848] 200 GET /video/:/transcode/universal/decision?advancedSubtitles=text&audioBoost=100&autoAdjustQuality=0&autoAdjustSubtitle=1&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=157248&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F1207&protocol=
&session=9a509e1312540fd1-com-plexapp-android&subtitles=burn&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160 (15 live) #444a TLS GZIP 3ms 682 bytes (pipelined: 8)
Nov 11, 2025 17:23:23.173 [18664] Debug — Request: didn’t get any data from [::ffff:192.168.0.206]:53935: End of file

A few pointers for next time. When providing media info, use the xml from pms. What’s important is how pms sees the video. When providing logs, put it into a text file.

As for your actual issue, my guess is the mpeg video. This is old and there are many different versions of it and compatibility can vary. Your logs show the file is being direct steamed, so the video is not being transcoded. It’s then up to the device if this will play and logs like it won’t. Turn off direct stream in the player forcing pms to transcode to h264 and see if that helps.

Sorry. Here’s the media info from Plex: MediaInfo.txt (8.3 KB)

I’ve tried setting transcoding on the player, also disabled the option to use the original files, if the resolution is lower than the one set, but no change. I’ve even set it to the 480, that’s the resolution of the video, but still no change.

It’s not definitive but still appears to me that is the video. Try using the option to optimize the file from your server. If that fails, then PMS can’t handle it. The only option would then be to try and convert the video using another problem other than plex.

Didn’t change anything, trying to optimize, setting settings for lower resolution that will make Plex transcode, yet nothing. The file plays just fine through plex on a PC (different from the server) or on my mobile phone.

I’ve downloaded another version that plays, but still that problem is strange.

Similar is a problem where I get “The PC is too weak to play this file” or something like that, while the PC is a 7th gen i5 that shouldn’t have problem playing the file, and it doesn’t have a problem, when I download the file through AnyDesk and play it localy, it’s exactly the same file.