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 choice of BaseURL deterministic for downloaded DASH content #9370

Closed
marcbaechinger opened this issue Sep 1, 2021 · 1 comment
Closed
Assignees
Labels

Comments

@marcbaechinger
Copy link
Contributor

When a DASH manifest has multiple base URLs that are load-balanced, the player randomly selects a base URL from a set of alternatives. When downloading a stream with such a manifest the DashDownloader always just chooses the first base URL from the list of available base URLs without a random selection.

However, when the same DASH manifest is being played with the player, the base URL is randomly selected again producing cache misses.

To allow such manifests to be downloaded and played the choice of base URLs needs to be deterministic at download and playback time.

@ojw28
Copy link
Contributor

ojw28 commented Sep 6, 2021

As discussed, an alternative (and more flexible) solution would be to ensure that regardless of which BaseURL is selected, the cache key(s) always end up being the same.

This approach would generalize to caching for regular playbacks (i.e., if a different BaseURL is selected when the user plays a stream that has been played before, we still want to use the cached segments where possible), and and any future support for correct use of multiple BaseURLs for download use cases.

icbaker pushed a commit that referenced this issue Sep 8, 2021
#minor-release #exofixit
Issue: #9370
PiperOrigin-RevId: 395429794
@ojw28 ojw28 closed this as completed Sep 9, 2021
christosts pushed a commit that referenced this issue Sep 21, 2021
@google google locked and limited conversation to collaborators Nov 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants