一种对媒体内容进行自适应的方法和装置的制造方法_3

文档序号:9221650阅读:来源:国知局
数的语义理解,需要明确定义流媒体适配参数,比如,当前DASH中URL模板构建方案中的参数;根据参数使用的性质,流媒体适配参数也可以依照现有的标准,比如,安全断言标记语言(SAML)(例如,对于安全相关的令牌)或者MPEG-21数字项适配(DIA)(例如,对于用户环境定义)。
[0049]在本实施例的一个例子中,将一个可以称作URLParameter的新元素插入到MPD中以指定所述每一个流媒体适配参数。所述URLParameter元素用于至少捕获以下信息:
[0050]参数的所需标识“id” ;当用作参数化的URL的一部分时,其可以用作待替换的令牌$1(1;或者,当参数用于查询字符串时,其可以用作“名字”(例如,“=”前面的部分)。这对于参数的命名空间,应该是独一无二的。
[0051]可选值“value”,用于捕获参数的任意已知(静态)值。当用作参数化的URL的一部分时,其为用于替换所述令牌$id的实际值;或者,当用于查询字符串时,其为所述令牌$id的“value” (例如,“=”前面的部分)。如果此信息缺失,则意味着当构建所述URL时,这一参值需要由用户端设备收集并提供。需要说明的是,这一信息的真实值需要按照可以用作URL或者包含查询字符串的URL的一部分的方式编码。
[0052]可选命名空间“namespace”,针对该参数所属的任一命名空间。当省略时,默认命名空间就是DASH的命名空间。
[0053]可选目的“queryString”,用于指示这一参数的目的是否为插入。当省略时,默认值可以设置为插入。
[0054]所述URLParameter元素还可以包括一个可选的使用要求“required”,用于指示这一参数是必需的(即,必选的)还是可选的。用于插入的参数必须是必需的,可选的查询字符串的参数不一定要添加到URL。这样能够灵活地适应不能为该参数赋值的客户端或者能够灵活地适应没有该参数也能处理URL的服务器。当省略时,所述该参数默认是必需的。
[0055]所述URLParameter元素可以可选地放置在MPD、周期、适配集合以及表述级别上,因此,所述URLParameter元素可以适用于其范围的所有媒体片段。而且,可以引入更多的方案使得所述URLParameter元素适用于其范围内的某些(并非所有)媒体片段。在XML方案中可以有多种方式定义所述URLParameter元素的类型。作为一个示例,以下示出了所述 URLParameter 元素。
[0056]<xs:complexType name = ^URLParameterType^>
[0057]〈xs: attribute name = "icTtype = ^xs:NCName^use =‘‘required"/〉
[0058]〈xs: attribute name = ^value^type = ^xs: string^use = "opt1nal,'/〉
[0059]〈xs: attribute name = ^namespace^type = ^xs: string^use = "opt1nal,'/〉
[0060]〈xs: attribute name = ^queryString ^ type = 〃xs: boo I ean〃use =^opt1nal^default = 〃false〃/>
[0061]〈xs: attribute name = ^ required ^ type = 〃xs: boo I ean〃use =“opt1nal “default: 〃true〃/X/xs: complexType)
[0062]在上面的定义中,属性OicU @value和Onamespace的语义直接明了。属性OqueryString取值为布尔型,其中,“false”表示该参数用于URL插入,“true”表示用于附加URL查询字符串。当省略时,OqueryString的默认值为“false”,表示该参数用于URL插入。属性Orequired取值也为布尔型,其中,“false”表示该参数是可选的,“true”表示该参数是必需的。
[0063]所述MPD也可以指定片段模板,要求用户端设备102返回特定格式的流媒体适配参数的值。
[0064]在步骤502中,媒体服务器104接收来自用户端设备102的请求,其中该请求包括数据对象位置指示和包含至少一个所述流媒体适配参数的值的查询字符串。在本发明各种实施例中,所述数据对象位置指示,例如,可以为URL的路径部分,所述查询字符串,例如,可以为URL的查询字符串部分。或者,数据对象位置指示可以解释为URL,查询字符串可以位于所述URL的后面。在用户端设备102接收到MPD之后,用户端设备102收集流媒体适配参数的值,并且根据比如说所述MPD中的片段模板,构建包括所述流媒体适配参数的值的URL。在各示例中,至少一个所述值应该包含在所述URL的查询字符串部分,并且,流媒体适配参数的其他值可以包含在所述URL的路径部分。
[0065]在一示例中,所述MPD可以包括如下内容:
[0066]<BaseURL>http://cdnl.example, com/video/〈/BaseURL〉
[0067]<URLParameter id = "RepNumber"/〉
[0068]<URLParameter id = 〃SegNumber"/>
[0069]<URLParameter id = "AvailableBandwidth"/〉
[0070]〈SegmentTemplate durat1n = "4,'startNumber = "I"
[0071]media = 〃$RepNumber$_$SegNumber$.mp4v ? bw = $AvailableBandwidth$V>
[0072]在该示例中,媒体服务器104请求用户端设备102返回表述号、片段号以及网络的可用带宽。媒体服务器104还要求特定的模板返回流媒体适配参数的这些值。例如,如果所述参数的值为:RepNumber = KSegNumber = 2 以及 AvailableBandwidth = 80000,则用户端设备102可以构建如下URL:
[0073]http://cdnl.example.com/video/l_2_
[0074]thisIsARearllyLongPath.mp4v ? bw = 80000
[0075]在该示例中,表述号和片段号包含在所述URL的路径部分,带宽的值包含在所述URL的查询字符串部分。
[0076]在另一个例子中,所述MPD可以包括如下内容:
[0077]<BaseURL>http://cdnl.example, com/video/〈/BaseURL〉
[0078]<URLParameter id = "RepNumber"/〉
[0079]<URLParameter id = 〃SegNumber"/>
[0080]〈URLParameter id = ^AvaiIableBandwidth^queryRequest = 〃true〃/>
[0081]〈SegmentTemplate durat1n = "4,'startNumber = "I"
[0082]media = 〃$RepNumber$_$SegNumber$.mp4v///>
[0083]在该示例中,媒体服务器104请求三个流媒体适配参数,即,表述号、片段号以及可用带宽。由于可用带宽的属性“querystring”的值为“true”,用户端设备102应将所述可用带宽的值作为URL的查询字符串返回。
[0084]如果所述参数的值为:RepNumber= K SegNumber = 2 以及 AvailableBandwidth=80000,则用户端设备 102 可以构建如下 URL:http://cdnl.example.com/video/l_2.mp4v ? AvailableBandwidth = 80000
[0085]步骤502中,在用户端设备102构建所述URL之后,用户端设备102根据带有请求参数(即所述URL的查询字符串部分中的值)的URL发送对片段的请求(例如,HTTP GET请求等HTTP请求)。然而,与现有技术不同的是,本发明实施例中的URL不指定特定的片段。通过这种方式,媒体服务器104可以灵活地选择不同的响应请求的方式。例如,媒体服务器104可以根据所述流媒体适配参数的值进行带宽适配,并选择适合于所述带宽的表述的片段。媒体服务器104也可以根据所述流媒体适配参数的值选择向用户端设备102发送新的MPD而不是发送片段。媒体服务器104甚至可以选择不响应所述请求,例如,当媒体服务器104确定用户端设备102无权获得所述请求中的片段号对应的片段时。
[0086]步骤504中,媒体服务器104确定是否应将数据对象发送至用户端设备102。所述数据对象,例如,为片段或新的MPD文件。
[0087]步骤506中,如果媒体服务器104确定不向用户端设备102发送数据对象,媒体服务器104可以不向用户端设备102发送响应。例如,媒体服务器104可以在步骤500中请求用户端设备
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1