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

Required segments needlessly abandoned and redownloaded in live stream #2667

Closed
5 tasks done
davemevans opened this issue Jun 25, 2018 · 2 comments
Closed
5 tasks done

Comments

@davemevans
Copy link
Contributor

Environment
Steps to reproduce
  1. Play any live stream in Firefox
Observed behaviour

Observe that as soon as the first segment is loaded and the seek to the live edge is issued, any inflight requests are cancelled. The segments are required, and are subsequently rerequested. Playback then stalls until these segments arrive. Usually playback resumes, but sometimes it does not - I am investigating why seperately.

This behaviour appears to have been introduced in v2.6.7.

Console output
[4814867][Protection] EME detected on this user agent! (ProtectionModel_21Jan2015) Debug.js:236:12
[4814867][MediaPlayer] Streaming Initialized Debug.js:236:12
[4814872][MediaPlayer] Playback Initialized Debug.js:236:12
[4815382][DashParser] Parsing complete: ( xml2json: 8.00ms, objectiron: 1.00ms, total: 0.00900s) Debug.js:236:12
[4815386][ManifestUpdater] Manifest has been refreshed at Mon Jun 25 2018 13:53:15 GMT+0100 (GMT Daylight Time)[1529931195.51]  Debug.js:236:12
[4815398][TimeSyncController] Server Time - Local Time (ms): 0 Debug.js:236:12
[4815412][Stream] No text data. Debug.js:236:12
[4815412][Stream] No fragmentedText data. Debug.js:236:12
[4815413][Stream] No embeddedText data. Debug.js:236:12
[4815413][Stream] No muxed data. Debug.js:236:12
[4815413][Stream] No image data. Debug.js:236:12
[4815418][PlaybackController] Native video element event: play Debug.js:236:12
[4815418][PlaybackController] Native video element event: waiting Debug.js:236:12
[4815888][BufferController][video] Init fragment finished loading saving to video's init cache Debug.js:236:12
[4815888][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/V300/init.mp4 Debug.js:236:12
[4815890][ScheduleController][video] Top quality video index has changed from undefined to 0 Debug.js:236:12
[4815896][BufferController][audio] Init fragment finished loading saving to audio's init cache Debug.js:236:12
[4815896][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/A48/init.mp4 Debug.js:236:12
[4815898][PlaybackController] Native video element event: loadedmetadata Debug.js:236:12
[4815899][ScheduleController][audio] Top quality audio index has changed from undefined to 0 Debug.js:236:12
[4816392][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/A48/764965591.m4s Debug.js:236:12
[4816395][ThroughputRule] requesting switch to index:  0 type:  audio Average throughput 193 kbps Debug.js:236:12
[4816529][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/V300/764965591.m4s Debug.js:236:12
[4816533][ThroughputRule] requesting switch to index:  0 type:  video Average throughput 70078 kbps Debug.js:236:12
[4816876][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/A48/764965592.m4s Debug.js:236:12
[4816878][PlaybackController] Requesting seek to time: 1529931184 Debug.js:236:12
[4816880][ThroughputRule] requesting switch to index:  0 type:  audio Average throughput 196 kbps Debug.js:236:12
[4816882][PlaybackController] Seeking to: 1529931184 Debug.js:236:12
[4816885][ScheduleController][video] onFragmentLoadingAbandoned for video, request: https://vm2.dashif.org/livesim/testpic_2s/V300/764965592.m4s has been aborted 
Debug.js:236:12
[4816886][ScheduleController][audio] onFragmentLoadingAbandoned for audio, request: https://vm2.dashif.org/livesim/testpic_2s/A48/764965593.m4s has been aborted Debug.js:236:12
[4816887][ScheduleController][audio] onFragmentLoadingAbandoned for audio, request: https://vm2.dashif.org/livesim/testpic_2s/A48/764965593.m4s has been aborted Debug.js:236:12
[4816889][ThroughputRule] requesting switch to index:  0 type:  video Average throughput 70078 kbps Debug.js:236:12
[4816891][ThroughputRule] requesting switch to index:  0 type:  audio Average throughput 196 kbps Debug.js:236:12
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://vm2.dashif.org/livesim/testpic_2s/V300/764965592.m4s. (Reason: CORS request did not succeed).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://vm2.dashif.org/livesim/testpic_2s/A48/764965593.m4s. (Reason: CORS request did not succeed).
[4817129][PlaybackController] Native video element event: seeked Debug.js:236:12
[4817129][PlaybackController] Native video element event: playing Debug.js:236:12
[4817218][PlaybackController] Native video element event: waiting Debug.js:236:12
[4817392][ThroughputRule] requesting switch to index:  0 type:  video Average throughput 70078 kbps Debug.js:236:12
[4817397][ThroughputRule] requesting switch to index:  0 type:  audio Average throughput 196 kbps Debug.js:236:12
[4817886][ScheduleController][audio] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/A48/764965593.m4s Debug.js:236:12
[4818028][ScheduleController][video] OnFragmentLoadingCompleted - Url: https://vm2.dashif.org/livesim/testpic_2s/V300/764965592.m4s Debug.js:236:12
[4818031][ThroughputRule] requesting switch to index:  0 type:  video Average throughput 442 kbps Debug.js:236:12
[4818049][PlaybackController] Native video element event: playing 
@davemevans
Copy link
Contributor Author

Looking at this with full logging turned on (note you have to tick "Verbose" in Chrome console 😠 ), this is because of onPlaybackSeeking for audio, call fragmentModel.abortRequests in order to seek quicker.

I don't think this should be happening at start up of a live stream, since a seek will always occur?

I also note that this is not just in Firefox - Chrome does it too (which makes sense). However, Chrome does not stall.

@davemevans davemevans changed the title Required segments needlessly abandoned and redownloaded in live stream on Firefox - stalls playback Required segments needlessly abandoned and redownloaded in live stream Jun 25, 2018
@epiclabsDASH
Copy link
Contributor

Closing.

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

No branches or pull requests

2 participants