Low latency playback does not accurately estimate throughput, uses too high quality level
Created by: sandersaares
Environment
-
The MPD passes the DASH-IF Conformance Tool on https://conformance.dashif.org/ -
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://streams.ml.mdn.skype.net/stream/teststream-01/manifest.mpd?throughputLimitKbps=1500
- Dash.js version: nightly
- Browser name/version: Edge 88
- OS name/version: Windows 10 20H2
Steps to reproduce
- Start playback in reference player with settings:
- low-latency mode: yes
- initial live delay: 1
- ABR algorithm: throughput or BOLA or L2A or LoL+
- Wait 30 seconds.
Observed behavior: general
For the L2A/LoL algorithms, player estimates throughput at 2000+ Kbps, which is far above server-enforced limit of 1500 Kbps. Choice of throughput estimation method does not appear to make any difference as far as I can tell.
For the BOLA/throughput algorithms, quality level is just stuck at minimum all the time. I assume these are not tuned for low-latency but include them here for completeness - what I care about is low latency behavior here.
Observed behavior: L2A ABR
With L2A ABR algorithm: player constantly stalls. Player tries to use 1500 Kbps quality level, which does not fit within 1500 Kbps budget (when added audio + overheads).
Observed behavior: LoL+ ABR
With LoL+ ABR algorithm: player constantly speeds up and slows down as it is unable to maintain buffer level. Player often tries to use 1500 Kbps quality level and occasionally drops down briefly.
Observed behavior: Throughput ABR
With "throughput" ABR algorithm: player is stuck on minimum quality level (250 kbps).
Observed behavior: BOLA ABR
With BOLA ABR algorithm: player is stuck on minimum quality level (250 kbps).
Expected behavior
Maintain stable 1000 Kbps quality level.
(Screenshot with manually selected quality level)