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

Stability at high bitrate playback #3853

Open
5 tasks done
wilaw opened this issue Jan 13, 2022 · 5 comments
Open
5 tasks done

Stability at high bitrate playback #3853

wilaw opened this issue Jan 13, 2022 · 5 comments
Assignees
Milestone

Comments

@wilaw
Copy link
Member

wilaw commented Jan 13, 2022

Environment
Steps to reproduce
  1. Play the MPD in dash.js reference player
Observed behavior

The provided manifest is a special test version of BBB, encoded at 1080p30 in AVC, but with bitrates from 5Mbps to 100 Mbps, with a visual confirmation of each bitrate burned in. It is designed to test the throughput dimension of 8K playback without forcing the player to use a new codec or actually decode that resolution. I notice two behaviors with the reference client with default settings:

  1. There is a sourcebuffer error thrown as the sourcebuffer becomes full.

Debug.js:169 [39849][SourceBufferSink][video] SourceBuffer append failed "QuotaExceededError: Failed to execute 'appendBuffer' on 'SourceBuffer': The SourceBuffer is full, and cannot free space to append additional buffers."

dash.js could perhaps manage this by reducing target buffer length for high bitrate streams, or at least take buffer size in to account when trying to append.

  1. The player does not have good stability at the start and switches bitrates often.

Debug.js:169 [11311][AbrController] Stream ID: defaultId_0 [video] switch from 0 to 10/10 (buffer: 4) {"throughput":110952.90000000001,"latency":113}
09:00:55.789 Debug.js:169 [13645][AbrController] Stream ID: defaultId_0 [video] switch from 10 to 3/10 (buffer: 1.833) "InsufficientBufferRule: being conservative to avoid immediate rebuffering"
09:00:56.539 Debug.js:169 [14395][AbrController] Stream ID: defaultId_0 [video] switch from 3 to 2/10 (buffer: 1.082) "InsufficientBufferRule: being conservative to avoid immediate rebuffering"
09:00:57.108 Debug.js:169 [14964][AbrController] Stream ID: defaultId_0 [video] switch from 2 to 9/10 (buffer: 4.514) {"index":9,"drops":2,"noDrops":4,"dropSize":8}
09:00:58.849 Debug.js:169 [16705][AbrController] Stream ID: defaultId_0 [video] switch from 9 to 2/10 (buffer: 2.773) {"index":2,"drops":1,"noDrops":5,"dropSize":1}
09:01:00.556 Debug.js:169 [18411][AbrController] [video] switching from throughput to buffer occupancy ABR rule (buffer: 13.164).
09:01:06.030 Debug.js:169 [23886][AbrController] Stream ID: defaultId_0 [video] switch from 2 to 8/10 (buffer: 11.899) {"index":8,"drops":1,"noDrops":7,"dropSize":7}
09:01:10.440 Debug.js:169 [28296][AbrController] Stream ID: defaultId_0 [video] switch from 8 to 10/10 (buffer: 7.282) {"state":2,"throughput":278335.75,"latency":169,"bufferLevel":7.282,"placeholderBuffer":31.40302417212097,"delay":0}
09:01:11.831 Debug.js:169 [29687][AbrController] [video] switching from buffer occupancy to throughput ABR rule (buffer: 5.889).

Expected behavior

Set up bitrates to a stable level that is maintained and either don't invoke any sourcebuffer errors, or handle sourcebuffer full errors well.

@stale
Copy link

stale bot commented Jun 12, 2022

This issue has been automatically marked as stale because it has not had recent activity. However, it might still be relevant so please leave a short comment if it should remain open. Otherwise the issue will be closed automatically after two weeks. Thank you for your contributions.

@stale stale bot added the stale To be used by automatic issue staling and closing to indicate that this issue is about to be closed label Jun 12, 2022
@dsilhavy
Copy link
Collaborator

unstale

@stale stale bot removed the stale To be used by automatic issue staling and closing to indicate that this issue is about to be closed label Jun 13, 2022
@stale
Copy link

stale bot commented Nov 11, 2022

This issue has been automatically marked as stale because it has not had recent activity. However, it might still be relevant so please leave a short comment if it should remain open. Otherwise the issue will be closed automatically after two weeks. Thank you for your contributions.

@stale stale bot added the stale To be used by automatic issue staling and closing to indicate that this issue is about to be closed label Nov 11, 2022
@dsilhavy
Copy link
Collaborator

unstale

@stale stale bot removed the stale To be used by automatic issue staling and closing to indicate that this issue is about to be closed label Nov 11, 2022
@dsilhavy dsilhavy self-assigned this Nov 16, 2023
@dsilhavy dsilhavy added this to the 5.0.0 milestone Nov 16, 2023
@vgarleanu
Copy link

Any updates on this?

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

No branches or pull requests

3 participants