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

Make low latency playback robust over some common CDN delivery errors #3334

Open
wilaw opened this issue Jul 14, 2020 · 2 comments
Open

Make low latency playback robust over some common CDN delivery errors #3334

wilaw opened this issue Jul 14, 2020 · 2 comments

Comments

@wilaw
Copy link
Member

wilaw commented Jul 14, 2020

While using dash.js 3.1.1. to pay back LL-DASH streams, the player was forced to handle several errors which it did not do in an elegant way.

image

Feature request to handle the following issues during low latency playback

  1. If a 415 response code is received, immediately retry the segment request.
  2. If a 5XX response is received, immediately retry the segment request
  3. If a chunked transfer segment download has not completed within X% of the expected segment duration, then abort the request and either re-try or fail-over to a lower bitrate. A value for X may be 200%. This will result in a rebuffer, but it is better behavior than the current which is that the player waited 120 seconds for a CTE transfer to timeout. You may also established a dynamic threshold by looking at the variation of segment transfer times over the past minute and then aborting anything greater than one standard deviation from that.

I appreciate that it is hard to develop against these errors if they are not easily reproducible. You may want to set-up a proxy which triggers these at your command, or else I can provide you directly some private streams which if you wait 10minutes or so will likely encounter these delivery errors.

@dsilhavy dsilhavy added this to the 3.1.4 milestone Jul 20, 2020
@dsilhavy dsilhavy self-assigned this Jul 20, 2020
@dsilhavy dsilhavy modified the milestones: 3.2.0, 3.2.1 Nov 18, 2020
@dsilhavy dsilhavy modified the milestones: 3.2.1, 3.3.0 Jan 21, 2021
@dsilhavy dsilhavy modified the milestones: 3.2.2, 4.0.0 Mar 29, 2021
@dsilhavy dsilhavy modified the milestones: 4.0.0, 4.0.1 May 14, 2021
@dsilhavy dsilhavy modified the milestones: 4.0.1, 4.1.0 Jun 27, 2021
@dsilhavy dsilhavy modified the milestones: 4.1.0, 4.1.1 Sep 15, 2021
@dsilhavy dsilhavy modified the milestones: 4.2.0, 4.3.0 Nov 19, 2021
@dsilhavy
Copy link
Collaborator

Small update:
1 and 2 are solved because the lowLatencyTimeout for scheduling is set to 0 by default. 3 is still open so I leave this ticket open

@dsilhavy dsilhavy modified the milestones: 4.2.1, 4.3.0 Dec 20, 2021
@dsilhavy dsilhavy modified the milestones: 4.3.0, 4.3.1 Feb 14, 2022
@dsilhavy dsilhavy modified the milestones: 4.4.0, 4.4.1 Apr 14, 2022
@dsilhavy dsilhavy modified the milestones: 4.4.1, 4.5.0 Jul 15, 2022
@dsilhavy dsilhavy removed this from the 4.5.0 milestone Sep 20, 2022
@dsilhavy dsilhavy added this to the 4.6.0 milestone Sep 20, 2022
@dsilhavy dsilhavy removed this from the 4.5.1 milestone Oct 13, 2022
@dsilhavy
Copy link
Collaborator

The AbandonRequestRule should take care of 3). To verify as part of the work on v5

@dsilhavy dsilhavy added this to the 5.0.0 milestone Nov 13, 2023
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

3 participants