Hi,
I have the following master playlist with two variants:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1647000,RESOLUTION=640x640,CODECS="avc1.4d001f,mp4a.40.2"
hls1500k/2e3caaf5-cbf22608-92cb-480d-b03a-ba77a759acb5.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=681000,RESOLUTION=320x320,CODECS="avc1.42001e,mp4a.40.2"
hls0600k/2e3caaf5-cbf22608-92cb-480d-b03a-ba77a759acb5.m3u8
When starting a stream like this:
let playerItem = AVPlayerItem(url: <the url>)
if #available(iOS 10.0, *) {
playerItem.preferredForwardBufferDuration = 10
}
player.replaceCurrentItem(with: playerItem)
player.play()
The stream is initiated with the lower bandwidth variant, even though the higher bandwidth variant is the first entry in the master playlist (please see the logging output below). The documentations clearly states that the first entry in the master playlist will be played at the initiation of a stream.
Why isn't the higher bandwidth stream played first? Any help resolving this issue would be much appreciated.
2018-02-05 18:03:35:671 MyApp[1968:812034] new AVPlayerItem access log entry: {
"playbackStartDate" : 539546615.56325698,
"playbackSessionID" : "E9A4A4A0-B401-4D25-B645-706AE75CA6D3",
"numberOfServerAddressChanges" : 0,
"durationWatched" : 0.10767102241516113,
"mediaRequestsWWAN" : 0,
"segmentsDownloadedDuration" : 2.0464440000000002,
"numberOfDroppedVideoFrames" : 0,
"observedMaxBitrate" : 7502487.9833125779,
"indicatedAverageBitrate" : -1,
"observedMinBitrate" : 7502487.9833125779,
"observedBitrateStandardDeviation" : -1,
"numberOfMediaRequests" : 1,
"uri" : "https:\/\/my-app-example.org\/video\/hls0600k\/2e3caaf5-cbf22608-92cb-480d-b03a-ba77a759acb5.m3u8",
"averageVideoBitrate" : 611464.56976100977,
"numberOfBytesTransferred" : 156416,
"switchBitrate" : -1,
"downloadOverdue" : 0,
"startupTime" : 0.13179397583007812,
"serverAddress" : "52.222.233.56",
"indicatedBitrate" : 681000,
"observedBitrate" : 3751243.991656289,
"numberOfStalls" : 0,
"transferDuration" : 0.182304625,
"averageAudioBitrate" : 0,
"playbackStartOffset" : 0,
"playbackType" : "VOD"
}
2018-02-05 18:03:35.672499+0000 MyApp[1968:823002] new AVPlayerItem access log entry: {
"playbackStartDate" : 539546615.56325698,
"playbackSessionID" : "E9A4A4A0-B401-4D25-B645-706AE75CA6D3",
"numberOfServerAddressChanges" : 0,
"durationWatched" : 0.10767102241516113,
"mediaRequestsWWAN" : 0,
"segmentsDownloadedDuration" : 2.0464440000000002,
"numberOfDroppedVideoFrames" : 0,
"observedMaxBitrate" : 7502487.9833125779,
"indicatedAverageBitrate" : -1,
"observedMinBitrate" : 7502487.9833125779,
"observedBitrateStandardDeviation" : -1,
"numberOfMediaRequests" : 1,
"uri" : "https:\/\/my-app-example.org\/video\/hls0600k\/2e3caaf5-cbf22608-92cb-480d-b03a-ba77a759acb5.m3u8",
"averageVideoBitrate" : 611464.56976100977,
"numberOfBytesTransferred" : 156416,
"switchBitrate" : -1,
"downloadOverdue" : 0,
"startupTime" : 0.13179397583007812,
"serverAddress" : "52.222.233.56",
"indicatedBitrate" : 681000,
"observedBitrate" : 3751243.991656289,
"numberOfStalls" : 0,
"transferDuration" : 0.182304625,
"averageAudioBitr
2018-02-05 18:03:36:041 MyApp[1968:812034] new AVPlayerItem access log entry: {
"playbackStartDate" : 539546616.04021692,
"playbackSessionID" : "E9A4A4A0-B401-4D25-B645-706AE75CA6D3",
"numberOfServerAddressChanges" : 0,
"durationWatched" : 0,
"mediaRequestsWWAN" : 0,
"segmentsDownloadedDuration" : 2,
"numberOfDroppedVideoFrames" : 0,
"observedMaxBitrate" : 50269016.833702028,
"indicatedAverageBitrate" : -1,
"observedMinBitrate" : 37749015.880939253,
"observedBitrateStandardDeviation" : -1,
"numberOfMediaRequests" : 1,
"uri" : "https:\/\/my-app-example.org\/video\/hls1500k\/2e3caaf5-cbf22608-92cb-480d-b03a-ba77a759acb5.m3u8",
"averageVideoBitrate" : 1650640,
"numberOfBytesTransferred" : 412660,
"switchBitrate" : -1,
"downloadOverdue" : 0,
"startupTime" : 0,
"serverAddress" : "52.222.233.56",
"indicatedBitrate" : 1647000,
"observedBitrate" : 29339344.238213759,
"numberOfStalls" : 0,
"transferDuration" : 0.20787883299999999,
"averageAudioBitrate" : 0,
"playbackStartOffset" : 0.31848331299999999,
"playbackType" : "VOD"
}
2018-02-05 18:03:36.041552+0000 MyApp[1968:822817] new AVPlayerItem access log entry: {
"playbackStartDate" : 539546616.04021692,
"playbackSessionID" : "E9A4A4A0-B401-4D25-B645-706AE75CA6D3",
"numberOfServerAddressChanges" : 0,
"durationWatched" : 0,
"mediaRequestsWWAN" : 0,
"segmentsDownloadedDuration" : 2,
"numberOfDroppedVideoFrames" : 0,
"observedMaxBitrate" : 50269016.833702028,
"indicatedAverageBitrate" : -1,
"observedMinBitrate" : 37749015.880939253,
"observedBitrateStandardDeviation" : -1,
"numberOfMediaRequests" : 1,
"uri" : "https:\/\/my-app-example.org\/video\/hls1500k\/2e3caaf5-cbf22608-92cb-480d-b03a-ba77a759acb5.m3u8",
"averageVideoBitrate" : 1650640,
"numberOfBytesTransferred" : 412660,
"switchBitrate" : -1,
"downloadOverdue" : 0,
"startupTime" : 0,
"serverAddress" : "52.222.233.56",
"indicatedBitrate" : 1647000,
"observedBitrate" : 29339344.238213759,
"numberOfStalls" : 0,
"transferDuration" : 0.20787883299999999,
"averageAudioBitrate" : 0,
"playbackStartOffset" : 0.3184833129999999