-
Notifications
You must be signed in to change notification settings - Fork 8
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
Content steering mechanism for DASH compatible with HLS RSS #406
Comments
Reviewed during Live TF call.
|
@wilaw please provide a reference to the draft RFC on the steering protocol. Question is whether this protocol is sufficient to address also DASH. A protocol that permits steering of DASH and HLS clients to different CDNs. @wilaw ask on apple list:
|
@haudiobe - today Apple just updated and expanded their IETF spec at https://www.ietf.org/archive/id/draft-pantos-hls-rfc8216bis-10.txt to include the formal definition for Content Steering (see Section 7). The only issue I can see with the suggestion to use the pathway ID as the baseURL in DASH. The pathway-ID is defined as " A Pathway ID is a non-empty string containing characters from the set [a..z], [A..Z],[0..9], '.', '-', and ''._". This character restriction would not allow an absolute baseURL to be specified, since :// is not allowed. |
Discussion 2021/11/19
Proposed way forward on spec:
JSON Response reference to HLS spec
On implementation and interop
|
I did write to the IETF HLS Interest group on Nov 19th about the willingness to extend the allowed character set for pathway-ID to include the use of URLs. Apple replied that there were many other characters that would be needed for full URL support, that this extension would break existing clients and that it seemed like DASH IF had a work-around (via ServiceLocation). I agreed and rescinded the request for the additional character support. We can make it work using ServiceLocation. |
From @wilaw Here is a my proposal for a Content Steering extension to DASH that is compatible with the content steering server response currently defined by HLS. This will allow the interoperable steering of DASH and HLS content by a single steering service, which should reduce the steering complexity for multi-format distributors. |
Good starting point! Should we say that the player needs to issue a forced call to the steering server when the stream is playing and the buffer level drops down to 50% of the target buffer? In this situation, using a different baseURL could help. Could we avoid to hardcode the ContentSteering URL token value (token=2345234525) inside the manifest, and instead get this value from a query string added to the MPD url, with a UrlQueryInfo element? We'd like to avoid customizing manifests for each end user just for the sake of inserting this token inline, which is not scalable. On the same line, that would be great to have variable support to construct the BaseURL values, in order to for example insert SSAI sessionID as a sub-path of the BaseURL value. I know UrlQueryInfo is not very flexible in terms of you can insert the query string arguments in the manifest, but I think Alex Giladi wanted to look at this problem at the MPEG level, and try to bring more flexibility here. |
Triggering request without cadence can potentially create an anti-pattern for steering server but requires further discussion. |
TF Meeting Conclusions: We are agreeing that
|
MPEG DASH provides multiple baseURLs, which specify alternate sources for content. However the priority with which these are used varies between player implementations. DVB defines additional weights and priorities. BaseURL switching always occurs in response to a delivery problem. Many content distributors use multiple CDNs to deliver their content and There is currently no means to deterministically steer (or switch) a cohort of players to a particular CDN during playback. THis would be a very useful addition to DASH. HLS has just defined a mechanism for steering content via a remote steering server. Since many distributors need to steer both DASH and HLS content, the most efficient solution would be to be able to steer both DASH and HLS playback from the same steering server. This issues defines such a solution.
To support content steering with DASH, we require one new element and extend an existing element. In the mpd snippet below we note that each baseURL element has a new optional attribute called "pathway-ID". We also note the new mpd@Content-Steering element. His has two attributes - a uri and a default-pathway-ID.
Steering server response
Workflow
There are edge cases to be considered that are not addressed specifically in this issue:
The text was updated successfully, but these errors were encountered: