Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTS: Issues when starting playback at some position #245

Open
defagos opened this issue Mar 26, 2021 · 4 comments
Open

RTS: Issues when starting playback at some position #245

defagos opened this issue Mar 26, 2021 · 4 comments

Comments

@defagos
Copy link
Member

defagos commented Mar 26, 2021

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
Copy link
Member Author

defagos commented Mar 26, 2021

After investigation:

  • The issue only arises if attempting to start playback for CH streams with either before tolerance or after tolerance set to a non-zero value (incl. infinity). There is no apparent issue if setting both tolerances to 0 or both to infinity, but the issue arises with both tolerances set to non-zero finite values.
  • If intercepting the master playlist request with Charles proxy and editing the response to remove the iframe playlists, then playback starts correctly.

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
Copy link
Member Author

defagos commented Mar 26, 2021

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

defagos added a commit to SRGSSR/playsrg-apple that referenced this issue Mar 26, 2021
@pyby
Copy link
Member

pyby commented Mar 26, 2021

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
Copy link
Member

pyby commented Mar 26, 2021

My opened questions:

  • Why with the RTS CH configuration, the iOS player try to download the iframe playlist and not with the RTS WW configuration.
  • iframe playlist is not displayed in the iOS player, but it may be use for the fast seeking. AVPlayer expert should confirm it.
  • How could we improve the iframe delivery? Better bitrate average declarations and maybe less timeout.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants