Server Version#: 1.28.1.6041
Player Version#: Android - 9.6.2.34368
I created a Custom Profile for Android to try to limit all codecs to no more than 1920x1080. I’ve tried a really simple one that just told it to Direct Play everything (using *), and I’ve tried one that was a bit more fleshed out, giving transcode options and Direct Play options. Regardless, I see no difference when trying to play a 4K movie on Android, it neither transcodes to 1080p nor plays the existing 1080p file. During these tests, the client was set to not limit cellular data, and to play Maximum/Original quality.
PlexMediaServer/AppData/Plex Media Server/Profiles/Android.xml
<?xml version="1.0" encoding="utf-8"?>
<Client name="Android">
<!-- Author: Plex Inc. -->
<TranscodeTargets>
<VideoProfile protocol="hls" container="mkv" codec="h264" audioCodec="aac,mp3" context="streaming" />
<MusicProfile container="mkv" codec="opus" />
<PhotoProfile container="jpeg" />
<SubtitleProfile container="ass" codec="ass" />
</TranscodeTargets>
<DirectPlayProfiles>
<VideoProfile container="mp4" codec="Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="aac,mp3,mp2"/>
<VideoProfile container="mkv" codec="vp9,Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="aac,mp3,mp2,pcm,flac,alac" subtitleFormat="srt,ass"/>
<VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="aac" />
<MusicProfile container="mp3" codec="mp2,mp3"/>
<MusicProfile container="mp4" codec="aac"/>
<MusicProfile container="flac" codec="flac"/>
<MusicProfile container="wav" codec="pcm"/>
<PhotoProfile container="jpeg,png,gif"/>
</DirectPlayProfiles>
<CodecProfiles>
<VideoCodec name="h265,Hevc,vp9">
<Limitations>
<UpperBound name="video.width" value="1920"/>
<UpperBound name="video.height" value="1080"/>
<UpperBound name="video.bitrate" value="20000"/>
</Limitations>
</VideoCodec>
<VideoCodec name="h264,mpeg4">
<Limitations>
<UpperBound name="video.width" value="1920"/>
<UpperBound name="video.height" value="1080"/>
<UpperBound name="video.bitrate" value="20000"/>
<UpperBound name="video.bitDepth" value="10" />
</Limitations>
</VideoCodec>
<VideoAudioCodec name="aac,mp3">
<Limitations>
<UpperBound name="audio.channels" value="2" />
</Limitations>
</VideoAudioCodec>
</CodecProfiles>
</Client>