HLS Multivariant Manifest not play 1st variant first

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

Replies

It is no longer the case that the first variant in the list is the default variant. That was true in the past.

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));