Plex Bandwidth Limits Inconsistent between Client Platforms

I’ve noticed I can Direct Play a 3982Kbps version on the following platforms with a 4Mbps Bandwidth Restriction:

  • Plex for Web (Chrome, Edge, Safari, & Firefox)
  • Plex for Windows
  • Plex for Mac
  • Plex for Android (CCwGTV, Fire TV, & Pixel)

But Plex always Transcodes a 1990Kbps or 3982Kbps version on the following platforms with a 4Mbps Bandwidth Restriction (both Direct Play with a no Bandwidth Restriction):

  • Plex for tvOS/iOS

PMS’ Media Decision Engine (MDE) Logs state the following while playing back to tvOS/iOS while Transcoding the 1990Kbps file:
Streaming Resource: Calculated bandwidth of 4179kbps exceeds bandwidth limit. Changing decision parameters provided by client to fit bandwidth limit of 4000kbps

The Direct Play behavior is what I would expect with a 3982Kbps or 1990Kbps file with a 4Mbps Bandwidth profile.

I’m aware of Plex’s Streaming Brain and Deep Analysis, but it doesn’t make sense to me why only Apple Devices are affected and why files that haven’t had Deep Analysis ran on them are calculating 2.1x rather than 2x (1990Kbps x 2.1 = 4179Kbps).

Given that only a single platform is behaving this way, could the Plex team please consider this a bug and change tvOS/iOS behavior to be the same as Web, Windows, Mac, Android?

Thanks!

Server Version#: 1.31.1.6733
Player Version#: iOS/tvOS 8.15 (5092) AVPlayer & mpv

Different client types have different sizes of network buffers.
The bigger this buffer is, the larger the bandwidth of a stream is allowed to fluctuate without producing buffering pauses during streaming.
That’s why the detailed bandwidth analysis is producing not just one bandwidth value, but a whole lot of them. Each tailored for a certain buffer size.

@OttoKerner Is the buffer actually half the size on a iPhone, iPad, and Apple TV compared to all the other platforms I listed in my OP?

If not, then it looks like that network buffer data is outdated and should be updated so the Streaming Brain MDE behavior for Apple devices matches the other platforms which all behave identically to each other.

Please post the first ~20 lines from the Plex XML info of an affected video.

@OttoKerner here you go:

<Media id="55107" duration="6640128" bitrate="1990" width="1280" height="720" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="h264" videoResolution="720" container="mp4" videoFrameRate="24p" optimizedForStreaming="0" audioProfile="he-aac" has64bitOffsets="0" videoProfile="high">
<Part accessible="1" exists="1" id="56109" key="/library/parts/56109/1678227090/file.mp4" duration="6640128" file="file.mp4" size="1651649244" audioProfile="he-aac" container="mp4" deepAnalysisVersion="6" has64bitOffsets="0" indexes="sd" optimizedForStreaming="0" requiredBandwidths="6673,4954,3074,3074,3074,3074,3074,3074" videoProfile="high">
<Stream id="166998" streamType="1" default="1" codec="h264" index="0" bitrate="1919" language="English" languageTag="en" languageCode="eng" anamorphic="0" bitDepth="8" chromaLocation="left" chromaSubsampling="4:2:0" codedHeight="720" codedWidth="1280" colorPrimaries="bt709" colorRange="tv" colorSpace="bt709" colorTrc="bt709" frameRate="23.976" hasScalingMatrix="0" height="720" level="40" pixelAspectRatio="1233:1232" profile="high" refFrames="8" requiredBandwidths="6602,4887,3011,3011,3011,3011,3011,3011" scanType="progressive" streamIdentifier="1" width="1280" displayTitle="720p (H.264)" extendedDisplayTitle="720p (H.264)">
</Stream>
<Stream id="166999" streamType="2" selected="1" default="1" codec="aac" index="1" channels="2" bitrate="66" language="English" languageTag="en" languageCode="eng" audioChannelLayout="stereo" profile="he-aac" requiredBandwidths="67,67,67,67,67,67,67,67" samplingRate="48000" streamIdentifier="2" displayTitle="English (HE-AAC Stereo)" extendedDisplayTitle="English (HE-AAC Stereo)">
</Stream>
<Stream id="167000" streamType="3" default="1" codec="mov_text" index="2" bitrate="0" language="English" languageTag="en" languageCode="eng" captions="1" hearingImpaired="1" requiredBandwidths="1,1,1,1,1,1,1,1" streamIdentifier="3" displayTitle="English SDH (MOV_TEXT)" extendedDisplayTitle="English SDH (MOV_TEXT)">
</Stream>
<Stream id="167001" streamType="3" codec="mov_text" index="3" bitrate="0" language="English" languageTag="en" languageCode="eng" requiredBandwidths="1,1,1,1,1,1,1,1" streamIdentifier="4" displayTitle="English (MOV_TEXT)" extendedDisplayTitle="English (MOV_TEXT)">
</Stream>
</Part>
</Media>

Could a Plex Employee please comment on whether you’ve heard of this issue and/or are able to investigate?

I think consistency between client platforms could really help end-users.

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