Systems and methods for generalized HTTP headers in dynamic adaptive streaming over HTTP (DASH)
Systems and methods for streaming content are disclosed. A Media Presentation Description (MPD) may be associated with streaming content, for example, in Dynamic Adaptive Streaming Over HTTP (DASH). An MPD array comprise an element, e.g., a header element or URL, query element, which provides a name value functionality. An element may allow a request that results in insertion of custom headers. Requests may be used for retrieval of a subsegment, segment, or MPD, re-referencing of remote elements, or triggered by an event. The event may be embedded either in an MPD or in segments.
1 . A method implemented on a dynamic adaptive streaming over hypertext transfer protocol (DASH) server for streaming content, the method comprising:
receiving, from a DASH client, a hypertext transfer protocol (HTTP) request, wherein the HTTP request is based on a request type associated with one or more request types of a media presentation description (MPD) file, and wherein the HTTP request indicates a request for a value parameter corresponding to a name parameter and value parameter pair feedback; and
sending, to the DASH client, an HTTP response in reply to the HTTP request, wherein the HTTP response comprises a header indicating the requested value parameter corresponding to the name parameter and value parameter pair feedback, wherein the requested value parameter corresponding to the name parameter and value parameter pair feedback is indicated in a format based on a template associated with the request type, and wherein the requested value parameter is sent to the DASH client for use in header of a segment HTTP request.
2 . The method of claim 1 , further comprising sending the MPD file to the DASH client, wherein the MPD file indicates a request type attribute and a template attribute, wherein the request type attribute and the template attribute are to be used by the DASH client for the HTTP request and the HTTP response, wherein the request type attribute indicates the one or more request types to be used by the DASH client, and wherein the template attribute indicates the template to be used by the DASH client to obtain the value parameter corresponding to the name parameter and value parameter pair feedback.
3 . The method of claim 1 , further comprising receiving, from the DASH client, the segment HTTP request, wherein the header of the segment HTTP request specifies the name parameter and the requested value parameter.
4 . The method of claim 1 , wherein the name parameter and value parameter pair feedback is in a uniform resource locator (URL) query form.
5 . The method of claim 1 , wherein the request type is a DASH event GET request.
6 . The method of claim 1 , wherein the MPD file comprises a plurality of request types indicating two or more of a DASH event GET request, an MPD GET request, or an XLink GET request.
7 . The method of claim 1 , wherein the request type is an XLink GET request or an MPD GET request.
8 . A dynamic adaptive streaming over hypertext transfer protocol (DASH) server comprising:
a processor configured to at least:
receive, from a DASH client, a hypertext transfer protocol (HTTP) request, wherein the HTTP request is based on a request type associated with one or more request types of a media presentation description (MPD) file, and wherein the HTTP request indicates a request for a value parameter corresponding to a name parameter and value parameter pair feedback; and
send, to the DASH client, an HTTP response in reply to the HTTP request, wherein the HTTP response comprises a header indicating the requested value parameter corresponding to the name parameter and value parameter pair feedback, wherein the requested value parameter corresponding to the name parameter and value parameter pair feedback is indicated in a format based on a template associated with the request type, and wherein the requested value parameter is sent to the DASH client for use in header of a segment HTTP request.
9 . The DASH server of claim 8 , wherein the processor is configured to send the MPD file to the DASH client, wherein the MPD file indicates a request type attribute and a template attribute, wherein the request type attribute and the template attribute are to be used by the DASH client for the HTTP request and the HTTP response, wherein the request type attribute indicates the one or more request types to be used by the DASH client, and wherein the template attribute indicates the template to be used by the DASH client to obtain the value parameter corresponding to the name parameter and value parameter pair feedback.
10 . The DASH server of claim 8 , wherein the processor is configured to receive, from the DASH client, the segment HTTP request, wherein the header of the segment HTTP request specifies the name parameter and the requested value parameter.
11 . The DASH server of claim 8 , wherein the name parameter and value parameter pair feedback is in a uniform resource locator (URL) query form.
12 . The DASH server of claim 8 , wherein the request type is a DASH event GET request.
13 . The DASH server of claim 8 , wherein the MPD file comprises a plurality of request types indicating two or more of a DASH event GET request, an MPD GET request, or an XLink GET request.
14 . The DASH server of claim 8 , wherein the request type is an XLink GET request or an MPD GET request.
15 . A dynamic adaptive streaming over hypertext transfer protocol (DASH) client comprising a processor configured to at least:
receive a media presentation description (MPD) file for DASH streaming, wherein the MPD file indicates a request type attribute and a template attribute to be used by the DASH client for a hypertext transfer protocol (HTTP) request, wherein the request type attribute indicates a set of request types to be used by the DASH client, and wherein the template attribute indicates a template to be used by the DASH client to obtain a value parameter corresponding to a name parameter and value parameter pair feedback from an HTTP response in reply to an HTTP request;
generate, based on the request type attribute and the template attribute, a first HTTP request, wherein the first HTTP request indicates a request for the value parameter corresponding to the name parameter and value parameter pair feedback;
send the first HTTP request;
receive a first HTTP response in reply to the first HTTP request, wherein the first HTTP response comprises a header indicating the requested value parameter corresponding to the name parameter and value parameter pair feedback;
obtain, from the received first HTTP response, the requested value parameter, wherein the requested value parameter is obtained based on the template;
generate a second HTTP request for a segment, wherein header of the second HTTP request comprises the obtained value parameter using the received first HTTP response; and
send the second HTTP request.
16 . The DASH client of claim 15 , wherein the request type attribute is one of an XLink GET request, an MPD GET request, or a DASH event GET request.
17 . The DASH client of claim 15 , wherein the request type attribute indicates a plurality of request types, and the plurality of request types comprises two or more of a DASH event GET request, an MPD GET request, or an XLink GET request.
18 . The DASH client of claim 15 , wherein the processor being configured to send the first HTTP request comprises the processor being configured to send the first HTTP request to a DASH value provider.
19 . The DASH client of claim 15 , wherein the processor being configured to send the second HTTP request comprises the processor being configured to send the second HTTP request to a DASH content server.