I see it lightly documented that the first variant listed in the manifest is the first variant to play, then adaptive streaming takes over to pick the next variants.
When we do this we find the 3rd variant is loaded first.
How can I investigate the reason for this?
I've run media analyzer and there were some suggestion but nothing that made the 3d variant different from the first 2.
#EXTM3U #EXT-X-VERSION:3 #EXT-X-INDEPENDENT-SEGMENTS #EXT-X-STREAM-INF:BANDWIDTH=14985704,AVERAGE-BANDWIDTH=6811200,CODECS="avc1.4d4033,mp4a.40.2",RESOLUTION=3840x2160,FRAME-RATE=29.970 clip4_2160p30-6M.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=24835374,AVERAGE-BANDWIDTH=11211200,CODECS="avc1.4d4033,mp4a.40.2",RESOLUTION=3840x2160,FRAME-RATE=29.970 clip4_2160p30-10M.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=37147462,AVERAGE-BANDWIDTH=16711200,CODECS="avc1.4d4033,mp4a.40.2",RESOLUTION=3840x2160,FRAME-RATE=29.970 clip4_2160p30-15M.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=49459550,AVERAGE-BANDWIDTH=22211200,CODECS="avc1.640033,mp4a.40.2",RESOLUTION=3840x2160,FRAME-RATE=29.970 clip4_2160p30-20M.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=74013326,AVERAGE-BANDWIDTH=33140800,CODECS="avc1.640033,mp4a.40.2",RESOLUTION=3840x2160,FRAME-RATE=29.970 clip4_2160p30-30M.m3u8
See AVPlayerItem.startsOnFirstEligibleVariant
/*!
@property startsOnFirstEligibleVariant
@abstract Directs the player to start playback with the first eligible variant that appears in the stream's master playlist.
@discussion
This property influences AVPlayer's algorithm for selecting which of the eligible variant streams in an HTTP Live Streaming master playlist is selected when playback first begins.
In all cases, AVPlayer may switch to other variants during playback.
On releases prior to macOS 10.15, iOS 13, tvOS 13 and watchOS 6, AVPlayer starts HLS playback with the first eligible variant in the master playlist.
On releases starting with macOS 10.15, iOS 13, tvOS 13 and watchOS 6, AVPlayer starts HLS playback by choosing an initial variant that optimizes the startup experience.
On releases starting with macOS 11.0, iOS 14, tvOS 14 and watchOS 7, applications may set this property to YES to request that AVPlayer use the previous behaviour of using the first eligible variant in the master playlist. This would be appropriate, for example, for applications which wish to control initial variant selection by ordering the variants in the master playlist.
Note that changing this property may impact stream startup performance and quality. In order to be effective this property must be set before initial variant selection occurs.
This property only applies to HTTP Live Streaming assets. The default value of this property is NO.
*/
@property (nonatomic) BOOL startsOnFirstEligibleVariant API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0));