-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Player re-requested the latest segment when changing bitrate #3792
Comments
It turns out that the segment is always replaced whenever the player changes the bitrate. So I guess this definitely is a bug. It happens with dash.js 4.x.x. |
I think the problem here is related to small differences in the segment duration. As an example:
I don't think we can simply increase the last index by one. This only works if all Representations have the same segment duration. |
Hi, thank you for your suggestions on this issue! I have the same problem which is when I use my own custom ABR rule and the bitrate of video chunk is often changed, the player will download the chunk has been download before. For example, the last chunk's index downloaded by the player is 6 and the player will not download 7 next time but repeatedly download 6 many times and even download 2/3/4.... This problem has bothered me for a long time. I'have tried your method in 754b6be, I remove the code from line 1106 to 1109 in src/streaming/StreamProcessor.js but it doesn't seem to work. I don't know what to do, do you have any solution? |
@ZERO-cong This sounds like a configuration issue in your case. Please check
If you want to avoid this set |
Added an example to nightly: https://reference.dashif.org/dash.js/nightly/samples/abr/fastswitch.html |
@chanh1964 Two things we might try here to improve the current behavior:
|
Thank you for your advice. I implement my ABR rule in dash-if-reference-player and no matter if I set fastSwitchEnabled to false in src\core\Settings.js or uncheck the fast switching ABR option in samples/dash-if-reference-player/index.html, the player still download chunks repeatedly. I have tried many times, but it dosen't seem to work. Only when the bit rate is constant,the player will downloads the first chunk twice firstly and then downloads the other chunks one by one. |
@ZERO-cong Does this happen with the default ABR algorithm as well or only with the custom one? Also do you see this behavior with different content? |
I think it happen only with my custom ABR rule because I checked the "Use Custom ABR Rules" option in in samples/dash-if-reference-player/index.html and I checked the output of the browser console(google chrome) and found that the player did call my ABR before downloading each chunk. I tried two different contents which is https://dash.akamaized.net/envivio/EnvivioDash3/manifest-video-only.mpd and https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd but the result is the same |
If you can share your code we might be able to take a look |
I have sent the code to your email, please check it. |
I had the same problem (apparently only on chromium based browsers, firefox was fine) and fixed it with merging #3797. |
What exactly is blocked by that? I saw some problems with the PR when requests are canceled. We might be able to include a modified version of the PR in 4.7.0 |
When the custom ABR algorithm (rewrite from dash.js/latest/samples/abr/custom-abr-rules.html) change the bitrate, the latest downloaded chunk will be downloaded again with the new bitrate. But we hope that the new bitrate only be used to download future chunks. I try to set 'fastSwitchingEnabled' to false, but it failed. The solution in #3797 seems to work, but i am not sure if it's correct.
It would be so great if we can include that fix in the new version! Hope that. |
This is fixed in #4144, please comment if you see any more issues |
I'm not sure if it is a bug or not, but I guess it's worth noticing.
Environment
Steps to reproduce
fastSwitchingEnabled
tofalse
, if necessary.Observed behavior
Player re-requested the latest segment when changing bitrate
Console output
Expected behavior
Perhaps it is better that, unless
fastSwitchingEnabled=true
, the player should respect whatever downloaded bitrate of the segments.The text was updated successfully, but these errors were encountered: