Required segments needlessly abandoned and redownloaded in live stream
Created by: davemevans
Environment
-
The MPD passes the DASH-IF Conformance Tool on http://dashif.org/conformance.html -
The stream has correct Access-Control-Allow-Origin headers (CORS) -
There are no network errors such as 404s in the browser console when trying to play the stream -
The issue observed is not mentioned on https://github.com/Dash-Industry-Forum/dash.js/wiki/FAQ -
The issue occurs in the latest reference client on http://reference.dashif.org/dash.js/ and not just on my page
- Link to playable MPD file: https://vm2.dashif.org/livesim/testpic_2s/Manifest.mpd
- Dash.js version: nightly
- Browser name/version: Firefox 61
- OS name/version: Win7
Steps to reproduce
- 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