SRGSSR / srgletterbox-apple

The official SRG SSR media playback experience
https://srgssr.github.io/marketing/letterbox/
MIT License
14 stars 7 forks source link

RTS: Issues when starting playback at some position #245

Open defagos opened 3 years ago

defagos commented 3 years ago

Resume playback does not work in Play since a few weeks for some content. It appears only RTS CH streams (encrypted and geoblocked) are affected.

defagos commented 3 years ago

After investigation:

It is difficult to say whether the issue is at the playlist level and / or an Akamai issue, but this is definitely a stream distribution problem.

defagos commented 3 years ago

Here is a demo project (using only AVKit) that provides a way to play with these problems: Demo.zip

pyby commented 3 years ago

RTS new stream packing solution helps to test with same file origins, the "RTS VoD WW" Akamai CDN configuration and "RTS VoD CH" one.

UT's failed when the player load 1 iframe playlist and the first chunk. I don't know why with the "RTS VoD CH" stream, the player tries to load one iframe, and not the "RTS VoD WW" stream.

Like @defagos test, with Charles Proxy, if we remove the #EXT-X-I-FRAME-STREAM-INF variant, the UT passed.

With latest mediastreamvalidator command line (Verifying content part of this Apple article), we can see that iframe variants have issues: timeouts and more than 50% of average bitrate difference between declaration and reality. Both could impact AVPlayer performance. More investigation could be done.

➜ mediastreamvalidator --validation-data-path mediastreamvalidator_RTSWW.json https://rts-vod-amd.akamaized.net/ww/hls/12063264/27f6b361-ba1c-3b8d-91d3-3330e17c4cc3/master.m3u8
➜ mediastreamvalidator --validation-data-path mediastreamvalidator_RTSCH.json https://rts-vod-amd.akamaized.net/ch/hls/12063264/27f6b361-ba1c-3b8d-91d3-3330e17c4cc3/master.m3u8
➜ hlsreport --output mediastreamvalidator_RTSWW.html mediastreamvalidator_RTSWW.json
➜ hlsreport --output mediastreamvalidator_RTSCH.html mediastreamvalidator_RTSCH.json

Here are results in a html report: mediastreamvalidator_RTS.zip

pyby commented 3 years ago

My opened questions: