自适应流中的URL参数插入和添加的制作方法

文档序号:15456088发布日期:2018-09-15 01:07阅读:176来源:国知局

媒体内容提供者或经销商可以将媒体内容下发至各种用户端设备,比如电视、笔记本电脑和手机等。媒体内容提供者可以支持多个媒体编码器和/或解码器(编码解码器)、媒体播放器、视频帧率、空间分辨率、比特率、视频格式或者其组合。可以将媒体内容的源表述转换为其他各种表述以适用于不同的用户设备。

媒体内容可包括媒体表示描述文件(MPD)和多个片段。所述MPD可以为描述所述媒体内容比如其各种表述、统一资源定位符(URL)以及其他特征等的可扩展标记语言(XML)文件。正如本领域普通技术人员理解的那样,所述媒体内容可以分成各种层级,包括区段、适配集合(AS)、表述以及片段。

在自适应流媒体中,当媒体内容下发至客户端或者用户设备时,用户设备可以根据各种因素比如网络状况、设备能力和用户选择等动态地选择合适的片段。自适应流媒体包括已实现的或正在开发的各种技术或标准,比如,超文本传输协议(HTTP)动态自适应流媒体(DASH)、HTTP实况流媒体(HLS)或因特网信息服务(IIS)平滑流媒体。例如,用户设备可以尽可能选择最高质量(如,分辨率或比特率)的能够边播放、边下载而不会在播放过程中造成暂停或重新缓冲的片段。因此,用户设备可以将其媒体内容播放无缝地适应于变化的网络状况。

在自适应流媒体中,可能需要指定和构造用于访问流媒体片段的URL,以便提高灵活性以及降低流媒体MPD的复杂度,比如,运动图像专家组(MPEG)DASH中使用的MPD的复杂度。现有的一些方案,比如,DASH标准中URL模板规范中的URL参数插入机制可以支持对于简单类型的URL参数插入(或替换)的参数规范。因此,希望扩展URL参数插入的能力,例如,携带更多类型的参数。



技术实现要素:

在一实施例中,本发明包括一种由用户端设备实现的媒体内容流的方法,所述方法包括:在统一资源定位符(URL)的查询串部分插入一个或多个查询参数,其中,所述查询串部分位于所述URL的路径部分的后面;向流服务器发送包括所述URL的媒体请求;从所述流服务器接收响应所述媒体请求的媒体内容的一个或多个片段。

在另一实施例中,本发明包括一种装置,所述装置包括:接收器,用于接收包括媒体内容的统一资源定位符(URL)模板的媒体表示描述(MPD);处理器,与所述接收器连接,用于根据所述URL模板构造URL,其中,所述URL包括路径部分和位于所述路径部分后面的查询串部分,所述查询串部分包括一个或多个查询参数;发送器,与所述处理器连接,用于向流服务器发送对媒体内容的请求,其中,所述请求包括所述已构造的URL。

在又一实施例中,本发明包括一种由网络服务器实现的媒体内容流的方法,所述方法包括:从流客户端接收URL,其中,所述URL包括路径和位于所述路径后面的查询串,所述查询串包括一个或多个查询参数;根据至少一个所述接收的查询参数,为所述流客户端确定待使用的媒体内容的一个或多个片段;向所述流客户端发送所述一个或多个片段。

在又一实施例中,本发明包括一种装置,所述装置包括:接收器,用于从流客户端接收URL,其中,所述URL包括路径和位于所述路径后面的查询串,所述查询串包括一个或多个查询参数;处理器,与所述接收器连接,用于根据至少一个所述接收的查询参数,为所述流客户端确定待使用的媒体内容的一个或多个片段;发送器,与所述处理器连接,用于向所述流客户端发送所述一个或多个片段。

在一实施例中,本发明包括一种由用户端设备实现的媒体内容流的方法,在统一资源定位符(URL)的查询串部分插入一个或多个查询参数,其中,所述查询串部分位于所述URL的路径部分的后面;向流服务器发送包括所述URL的媒体请求;从所述流服务器接收响应所述媒体请求的媒体内容的一个或多个片段。

在一种可能的实现方式中,在所述插入所述一个或多个查询参数之前,还包括:获取所述媒体内容的媒体表示描述(MPD),其中,所述MPD包括用于构造URL的URL模板,其中,根据所述URL模板指定所述一个或多个参数以插入到所述URL的查询串部分。

在一种可能的实现方式中,还包括:在播放所述媒体内容期间,监测所述用户端设备的网络状态,其中,所述一个或多个查询参数包括至少一个所述网络状态。

在一种可能的实现方式中,所述一个或多个片段由所述内容服务器根据至少部分所述一个或多个查询参数来确定,其中,所述网络状态的其中一个为所述媒体内容播放期间所述用户端设备可用的带宽,所述带宽作为所述插入查询参数的其中一个被指定。

在一种可能的实现方式中,所述一个或多个查询参数包括所述用户端设备提供的鉴权码,所述接收所述一个或多个片段在验证所述用户端设备的标识后进行。

在一种可能的实现方式中,所述一个或多个查询参数包括表明所述用户端设备已经播放完强制播出内容的长度的证明,所述接收所述一个或多个片段仅在所述流服务器验证所述证明后进行。

在一种可能的实现方式中,所述一个或多个查询参数包括所述用户端设备提供的感兴趣区域(ROI)和视角中的至少一个,所述一个或多个片段描绘所述ROI和所述视角中的至少一个所指定的视频信号。

在一实施例中,本发明包括一种装置,所述装置包括:接收器,用于接收包括媒体内容的统一资源定位符(URL)模板的媒体表示描述(MPD);处理器,与所述接收器连接,用于根据所述URL模板构造URL,其中,所述URL包括路径部分和位于所述路径部分后面的查询串部分,所述查询串部分包括一个或多个查询参数;发送器,与所述处理器连接,用于向流服务器发送对媒体内容的请求,其中,所述请求包括所述已构造的URL。

在一种可能的实现方式中,所述接收器还用于从所述流服务器接收响应所述媒体请求的所述媒体内容的一个或多个片段;所述处理器还用于在播放所述媒体内容期间监测所述装置的网络状况。

在一种可能的实现方式中,所述网络状况的其中一个为在播放所述媒体内容期间所述装置可用的带宽,所述带宽作为所述查询参数的其中一个插入到所述URL。

在一种可能的实现方式中,所述一个或多个查询参数包括所述处理器可以访问的鉴权码,所述接收所述一个或多个片段在验证所述装置的标识后进行。

在一种可能的实现方式中,所述一个或多个查询参数包括表明所述处理器已经播放完强制播出内容的长度的证明,所述接收所述一个或多个片段仅在所述流服务器验证所述证明后进行。

在一种可能的实现方式中,所述一个或多个查询参数包括使用所述装置的用户提供的感兴趣区域(ROI)和视角中的至少一个,所述一个或多个片段描绘所述ROI和所述视角中的至少一个所指定的视频信号。

在一种可能的实现方式中,所述请求为超文本传输协议(HTTP)请求,所述MPD和所述片段均符合HTTP动态自适应流媒体(DASH)。

在一实施例中,本发明包括一种由网络服务器实现的媒体内容流的方法,所述方法包括:

从流客户端接收统一资源定位符(URL),其中,所述URL包括路径和位于所述路径后面的查询串,所述查询串包括一个或多个查询参数;根据至少一个所述接收的查询参数,为所述流客户端确定待使用的媒体内容的一个或多个片段;向所述流客户端发送所述一个或多个片段。

在一种可能的实现方式中,还包括:为所述媒体内容生成媒体表示描述(MPD),其中,所述MPD包括指定了所述一个或多个查询参数的URL模板,所述一个或多个查询参数在所述URL的所述查询串部分;在接收所述URL之前,向所述流客户端发送所述MPD。

在一种可能的实现方式中,所述URL模板包括指定了所述一个或多个查询参数中的查询参数的URL参数元素,其中,所述URL参数元素包括所述查询参数的标识。

在一种可能的实现方式中,所述URL模板包括指定了所述一个或多个查询参数中的查询参数的URL参数元素,其中,所述URL参数元素指定所述网络服务器可以访问的所述查询参数的静态值。

在一种可能的实现方式中,所述URL模板包括指定了所述一个或多个查询参数中的查询参数的URL参数元素,其中,所述URL参数元素指定命名空间,所述查询参数来自具有命名空间的实体。

在一种可能的实现方式中,还包括:在将所述媒体内容传输至所述流客户端期间,更新所述MPD,其中,所述更新后的MPD反映了生成所述MPD时的不断变化的事件;向所述流客户端发送所述更新的片段。

在一种可能的实现方式中,所述一个或多个查询参数包括所述流客户端提供的鉴权码,在发送所述一个或多个片段之前,所述方法还包括:通过所述鉴权码验证所述流客户端的标识。

在一种可能的实现方式中,所述一个或多个查询参数包括所述流客户端提供的播出证明,所述方法还包括:通过所述播出证明验证所述流客户端已经播放完强制播出内容,所述发送所述一个或多个片段直到验证完所述播出证明才进行。

在一种可能的实现方式中,所述一个或多个查询参数包括在播放包括所述片段的媒体内容期间所述流客户端可用的网络带宽,所述确定所述一个或多个片段包括:根据所述带宽选择所述一个或多个片段属于的表述。

在一实施例中,本发明包括一种装置,所述装置包括:

接收器,用于从流客户端接收统一资源定位符(URL),其中,所述URL包括路径和位于所述路径后面的查询串,所述查询串包括一个或多个查询参数;处理器,与所述接收器连接,用于根据至少一个所述接收的查询参数,为所述流客户端确定待使用的媒体内容的一个或多个片段;发送器,与所述处理器连接,用于向所述流客户端发送所述一个或多个片段。

在一种可能的实现方式中,所述处理器还用于为所述媒体内容生成媒体表示描述(MPD),其中,所述MPD包括指定了所述一个或多个查询参数的URL模板,所述一个或多个查询参数在所述URL的所述查询串部分;在所述接收器接收所述URL之前,所述发送器还用于向所述流媒体设备发送所述MPD。

以下结合附图和权利要求对以上以及其他特征做更清晰明了的详细描述。

附图说明

为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述的以下简要说明,其中的相同参考标号表示相同部分。

图1是由服务器管理的自适应流媒体(SMAS)系统的一个实施例的示意图;

图2示出了作为URL参数元素的查询参数的示例性实现方式;

图3示出了可以包括各种参数的示例性URL模板;

图4示出了包括静态值的示例性URL模板;

图5示出了带宽参数为查询请求参数的示例性URL模板;

图6A示出了示例性命名空间中的示例性带宽元素;

图6B示出了包括带有示例性值的命名空间参数的示例性URL模板;

图7示出了可用于根据MPD URL进行媒体片段URL自定义的示例性MPD;

图8示出了可用于进行广告插入和/或参数的实时解析的示例性MPD;

图9A、9B和9D示出了通过参数使能客户端反馈的示例性MPD;

图9C示出了通过Web应用程序描述语言(WADL)进行编码的示例性参数描述;

图10是由用户端设备实现的方法实施例的流程图;

图11是由网络服务器实现的方法实施例的流程图;

图12是网络设备的实施例的示意图。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

在本发明介绍的实施例通过将参数插入到URL的查询串部分而非通过替换所述URL的路径部分的参数来构造媒体片段URL。可以指定URL参数信息以允许静态和动态URL参数的插入(和替换)。可以插入各种类型的参数,包括来自其他命名空间的参数、可选和必选参数和/或查询请求参数。也可以应用处理规则来根据指定的URL参数信息构造URL。向所述查询串部分插入参数可以使流服务器管理或控制自适应流媒体,例如,使所述服务器而非客户端确定为媒体内容流选择哪个表述和/或片段。由所述服务器管理的自适应流媒体(SMAS)方式可以带来各种好处,比如,提高用户体验的一致性。

图1是可以包括一个或多个流服务器和流客户端的SMAS系统100的一个实施例的示意图。作为一个例子,图1示出了一个流服务器110和一个流媒体用户端设备130(可能存在更多的服务器和客户端,但未示出)。所述流客户端130可以获取(通过下载或流式传输)来自所述流服务器110的媒体内容。媒体内容可以采用任何可行的形式,比如视频、音频、文本或其组合。所述媒体内容可以包含任何适用的类型的信息,比如电影、音乐和/或电子出版物等。所述流媒体系统100可以实现任意合适的内容下发方案或方法,比如DASH方案。所述流客户端130可以是在用户设备的操作系统中实现的程序或应用,或者可以是在Web平台上访问的Web客户端。

流服务器110可以作为任意合适类型的网络服务器如HTTP服务器予以实现,其中,媒体内容可以由流媒体准备单元生成或准备。所述媒体准备单元可以位于所述HTTP服务器上或其他地方(例如,位于内容提供者中)。流服务器110可以为内容提供者的一部分,或者可以为内容分发网络(CDN)中的节点。所述媒体内容可以由所述内容提供者生成,然后发送到CDN节点。流服务器110中的所述媒体内容可以包括MPD和多个片段。在此说明,如果需要的话,所述MPD和所述片段可以存储在不同的服务器中,并从不同的服务器发送到流客户端。例如,MPD可以从流服务器110发送到流客户端130,而相应的片段可以从不同的流服务器(图1中未示出)发送到流客户端130。

如图1所示,流服务器110包括适配逻辑单元(或模块)112、请求解析器114、下发功能116和媒体内容120。所述媒体内容120可以包括一个或多个区段,并且每个区段可以包括多个可用表述。例如,在第一区段内,表述122可以包括多个片段,并且另一表述124也可以包括多个片段。第二区段与之类似。在流媒体系统100的另一端,流客户端130包括访问引擎132、监测功能单元134和媒体引擎136。

在流媒体系统100的操作中,流服务器110可以使用下发功能116向流客户端130下发MPD(在此说明,也可以从其他服务器下发所述MPD)。可以通过HTTP、电子邮件、拇指驱动器、广播或者其他任意传输方式下发所述MPD。通过解析所述MPD,流客户端130可以获知关于所述媒体内容的信息,例如,程序的定时、媒体内容的可用性、媒体类型、分辨率、最大和最小带宽、多媒体分量的各种编码后的可替代分量的存在性、可访问性特征和所需的数字版权管理(DRM)、网络中的每一个媒体组件的位置以及所述媒体内容的其他特征。所述MPD还可以包括URL模板,其中,根据所述URL模板,流客户端130可以构造用于获取片段的URL。

为了访问所述媒体内容120,流客户端130可以向流服务器110发送一个或多个HTTP请求140以请求所述媒体内容120。具体地,所述HTTP请求140可以包括一个URL,其中,所述URL包含流客户端130提供的信息(例如,带宽、设备能力,如屏幕大小、内存大小等)。在一实施例中,所述URL包括插入到所述URL的查询串部分(而非所述URL的路径部分)的参数。所述查询串部分可以包括一个或多个查询参数,并且可以通过符号“&”分隔多个查询参数。

可以将任意类型相关参数,比如,必需或可选的适配参数插入到所述查询串中。例如,如果是可选参数,服务器有时可以不感知客户端能力。假设流客户端130不能向流服务器110指示视频的分辨率,流客户端仍可以向其指示用户端设备的一些信息,比如屏幕大小或屏幕分辨率(包括作为查询参数)。然后,流服务器110可以利用这个信息为客户端130确定表述和相关的片段。

在流服务器110接收所述HTTP请求140之后,请求解析器114可以解析所述HTTP请求140,然后将相关信息转发到适配逻辑单元112。适配逻辑单元112可以使得流服务器控制或管理所述媒体流过程(因此,流媒体系统100也称作SMAS)。在一实施例中,适配逻辑单元112使用包含在所述HTTP请求140中的信息进行各种决策,例如,确定或选择哪个表述和/或哪个(些)片段以提供给流客户端130。适配逻辑单元112可以使用任意合适的决策逻辑。与客户端管理的自适应流媒体(CMAS)相比,所述SMAS系统100的优势在于流服务器110可以不用向流客户端130通知或者透露其文件路径,因为这些决策均由适配逻辑单元112在流服务器110内部进行。进一步地,由流服务器110而非流客户端130进行控制可以在提供所述媒体内容120时提高用户体验的一致性。例如,流服务器110可以通过相同带宽向客户端提供相同质量的片段(如果客户端控制流媒体,即使其带宽不足,所述客户端可能还会请求更高质量的片段,例如,尝试从网络提供者获得更高带宽)。

在确定提供哪个(些)片段给流客户端130后,流服务器110可以通过下发功能116发送HTTP响应142以向流客户端130下发所述片段。在此说明,也可以通过不同的下发功能下发MPD和片段;进一步的,例如,为使网络带宽使用率最大化,流客户端130可以从多个HTTP服务器获取片段。流客户端130中的访问引擎132可以适当地渲染所述片段,以向流客户端130提供流媒体服务。所述访问引擎132可以处理所述媒体片段,然后将其转发到媒体引擎136播放所述片段。进一步地,所述监测功能134可以连续或间歇性地监测流客户端130的状况(例如,带宽、鉴权码或令牌、设备参数等),并向所述访问引擎132提供所述状况。可以将所述状况作为URL的查询参数插入,从而下一个HTTP请求可以反映流客户端130的所述状况。

流服务器110和流客户端130之间的网络连接可以为任意合适的类型。例如,流服务器110和流客户端130可以通过互联网、移动网络或私人网络(如,公司内网)连接。或者,流服务器110和流客户端130可以属于同一个家庭网络并且连接同一个无线保真(WiFi)路由器。

在一实施例中,网络中的第三方也可以提供有关流客户端的信息,以助于优化流媒体过程。在向DASH提供服务器管理和网络协助时,可以将DASH指标、QoS参数、播放环境描述参数等各种类型的参数作为查询参数插入并发送到流服务器。例如,亚马逊可以提供指示客户端为Prime会员的信息,由于是Prime会员,流服务器(例如,AT&T)可以供给所述客户端更多的带宽。

为了保证包括MPD提供者、流客户端(例如,客户端130)和媒体片段服务器(例如,服务器110)等各方之间交换的参数的语义理解,需要明确定义这些参数,例如,通过当前DASH中URL模板构造方案中的参数。根据参数使用性质,这些参数也可以来自现有的标准,比如,针对安全相关令牌的安全断言标记语言(SAML);或者针对用户环境定义的MPEG-21数字项适配(DIA)。

在一实施例中,存在从DASH的核心实验得出的方案所可能具有的各种属性。第一,不仅可以支持简单类型的参数,还可以支持具有如XML元素等结构的参数;第二,对于URL插入或(附加)URL查询串,可以指示参数的使用;第三,可以支持来自非DASH命名空间的参数;第四,可以指示待使用的参数是必需的(默认的)还是可择的;第五,可以为媒体片段指示其在MPD中的不同结构水平上适用的参数范围。本发明介绍了一种指定参数的方式,其中所述参数可以插入到参数化的URL或者作为查询串参数跟附URL的参数,并且,本发明实施例可用以满足上述要求。

本发明介绍了一个新元素,可以记为URLParameter,用于捕获与流客户端相关的各种信息。在XML方案中可以通过很多方式定义所述元素“URLParameter”。图2示出了作为元素“URLParameter”的查询参数的示例性实现方式200。在实现方式200中,元素“URLParameter”包括多个属性:标识或标识符(id)210、值220、命名空间230、查询串属性240和使用要求250。正如本领域普通技术人员理解的那样,其他形式或实现方法均可用于在本文公开的原理内实现所述元素“URLParameter”。

参数的所述标识210可以为必需参数,当用作参数化的URL的一部分时,其可以用作待替换的令牌$id;或者,当参数可用于查询串时,其可以用作“名字”(“=”前面的部分)。此名字相对于所述命名空间230而言可以是独一无二的。

所述值220可以是可选值,用于捕获参数的任意已知(静态)值。当用作参数化的URL的一部分时,其可以为用于替换令牌$id的实际值;或者,当用于查询串时,其为“value”(例如,“=”前面的部分)。如果该信息缺失,则意味着在构造所述URL时,这一参数值是动态的且可能需要由流客户端收集并提供。在此说明,该信息的真实值需要按照用作URL或者包含查询串的URL的一部分的方式进行编码。

所述命名空间230可以是用于带有参数来自的命名空间的任意实体的可选属性。可以使用任意合适的命名空间(例如,DASH或者MPEG-21数字项适配(DIA))。当省略时,默认命名空间可以为DASH。

所述查询串属性240可为可选,且可以指示这一参数的目的是否用于插入或(附加)查询串。当省略时,默认值可以设置为用于插入。

使用要求250可以是表示为“required”的可选属性,表示这一参数是必需的(即,必选的)还是可选的。尽管不一定要将可选的查询串的参数添加到URL中,但用于插入的参数一定是必需的。这样能够灵活地适应或许不能为该参数提供任意值的客户端或者无需该参数就能处理URL的服务器。当省略时,该参数是默认必需的。

在所述实现方式200中,属性@id、@value和@namespace的语义直接明了,以方便本领域普通技术人员理解。属性@queryString取值为布尔型,其中,“false”表示该参数用于URL插入,“true”表示该参数为附加URL查询串。当省略时,@queryString的默认值为“false”,表示该参数用于URL插入。属性@required取值也为布尔型,其中,“false”表示该参数是可选的,“true”表示该参数是必需的。

可选地,所述元素“URLParameter”可以在一个或多个级别上,包括MPD、区段、适配集合和表述级别。所述元素“URLParameter”在可以应用于其范围内的所有媒体片段。如果需要,可将所述元素“URLParameter”设成适用于其范围内的某些(并非全部)媒体片段。

在使用中,流客户端(比如,客户端130)可以对每个“URLParameter”执行处理规则。在一实施例中,对于在其范围内的每个媒体片段URL或者URL模板,客户端可以首先检查“required”以确定这一参数是必需的还是可选的,并且若为可选,则确定是否进行处理;第二,如果客户端决定处理所述参数,所述客户端可以根据“namespace”提供的命名空间从“value”收集参数值,根据来自所述命名空间的参数语义,该值可以是已经由“value”自身或者某个带外机制提供的;第三,所述客户端可以检查所述参数的“queryString”,以确定当置入所述URL或URL模板时所述参数是用于插入还是查询串;第四,如果目的是用于URL插入,所述客户端可以在匹配“id”的URL中找到替代,并使用该参值替换相应$id令牌;第五,如果目的是用于URL查询串,所述客户端可以构造字符串“id”“=”“value”,并作为查询串置于(例如,追加到)所述URL中。

下文是一些示例性实施例,用以说明在此介绍的参数说明及其一些用例中的潜在应用。图3示出了示例性URL模板300,其可以包括各种参数:表述号(RepNumber)310、片段号(SegNumber)320和流客户端的带宽(AvailableBandwidth)330。通过所述URL模板300,流客户端可以构造URL,然后向流服务器发送所述URL以请求媒体内容的片段。

假设所述参数的值为:RepNumber=1、SegNumber=2、AvailableBandwidth=80000。在一实施例中,流客户端可以使用所述URL模板300构造如下URL:

http://cdn1.example.com/video/1_2.mp4v?bw=80000 (1)

在URL(1)中,所述带宽参数(bw=80000)330作为查询参数插入到所述URL的查询串部分。查询串部分位于所述URL的路径部分的后面并通过问号(?)与所述路径隔开。在URL(1)中,路径部分为http://cdn1.example.com/video/1_2.mp4v,且查询串部分为“bw=80000”。

图4示出了示例性URL模板400,其在各方面都与所述URL模板300相似。为了简洁起见,将侧重不同的或还未描述的方面(其他模板同此)进行描述。所述URL模板400包括各种参数:表述号(RepNumber)、片段号(SegNumber)和流客户端的带宽(AvailableBandwidth)。与所述URL模板300不同的是,所述URL模板400还可以包括带有静态值的参数410。所述静态值可以由流服务器定义并提供给所述客户端。作为一个例子,所述参数410表示为“shorthand”,且具有静态值“thisIsAReallyLongPath”。

假设所述参数的值为:RepNumber=1、SegNumber=2、AvailableBandwidth=80000。在一实施例中,通过所述URL模板400,流客户端可以构造如下URL(2):

http://cdn1.example.com/video/1_2_thisIsAReallyLongPath.mp4v?bw=80000. (2)

在URL(2)中,所述带宽参数(bw=80000)作为查询参数插入到所述URL的查询串部分。进一步地,所述参数410的值作为路径参数插入到所述URL的路径部分。

图5示出了示例性URL模板500,其中,带宽参数510为查询请求参数(由queryRequest=“true”表示)。所述URL模板300和400将AvailableBandwidth列为替换参数(由两个美元符号“$___$”指示),与之不同的是,所述URL模板500将AvailableBandwidth作为查询请求参数。

假设所述参数的值仍为:RepNumber=1、SegNumber=2、AvailableBandwidth=80000。在一实施例中,通过所述URL模板500,流客户端可以构造如下URL(3):

http://cdn1.example.com/video/1_2.mp4v?AvailableBandwidth=80000 (3)

在URL(3)中,所述带宽参数(bw=80000)可以由流客户端(例如,通过所述监测功能134)确定,然后作为查询参数插入到所述URL的查询串部分。

为了便于说明,可以MPEG-21DIA定义的用户环境描述(UED)参数为例。图6A示出了表示为“urn:mpeg:mpeg21:2003:01-DIA-NS”的DIA命名空间中的示例性“AvailableBandwidth”元素600。

图6B示出了包括带有值为“urn:mpeg:mpeg21:2003:01-DIA-NS”的命名空间参数612的示例性URL模板610。

假设所述参数的值为:RepNumber=1、SegNumber=2、AvailableBandwidth=<AvailableBandwidth maximum="256000"average="80000"/>。在一实施例中,通过所述URL模板610,流客户端可以构造如下URL:

http://cdn1.example.com/video/1_2.mp4v?AvailableBandwidth=%3CAvailableBandwidth%20maximum%3D%22256000%22%20average%3D%2280000%22%2F%3E (4)

在URL(4)中,所述带宽参数为一个范围而不是一个固定值。进一步地,将所述带宽参数中的特殊字符进行编码,然后作为查询参数插入到所述URL的查询串部分。

在DASH的实施例中,表1中列举的替换参数可以在URL构造阶段供DASH客户端使用。

表1

本领域普通技术人员将会理解表1中的替换参数的含义。特别的,表1中列举的最后四个替换参数可以为在此所介绍的新参数。

在DASH的实施例中,URL查询串元素(UrlQueryString)可以按下表2进行设置。

表2

本领域普通技术人员将会理解表2中的元素或属性的含义。在一实施例中,所述UrlQueryString元素在区段、适配集合和表述级别上最多出现一次。

表2中的所述UrlQueryString描述了如何建立URL查询串,其可以来自各个位置,包括:设置@useMPDUrlQuery时的MPD URL、存在时的@QueryString属性、存在时的@OptionalQueryString属性或者存在时的@xlink分辨率。

所述URL查询串可以通过连结由(如果存在且可用,尤其对于@OptionalQueryString)@useMPDUrlQuery、@mpdQueryString、@OptionalQueryString和@xlink:href产生的查询串来构造。

当在MPD中存在两次或以上UrlQueryString事件,则在最内表述级别上使用的最终URL查询串可以是按所述事件在MPD层级中出现的顺序对对应的URL查询串进行的连结。

在此说明,可以使用“基本”参数信令(@queryString=“a=X&b=Y”),以及依赖统一资源名(URN)的信令(@queryString=“a=$urn:XYZ&b=$urn:ABC”)。在后一种情况中,客户端可以感知所提供的URN,并且需要为其计算合适的值。对于该参数的建议用例包括全球定位系统(GPS)或者测量带宽,其中,所述客户端需要通过URL参数进行反馈。在URN方案前面加上“$”符号告知等待计算。

在自适应流媒体系统(例如,系统100)中存在各种潜在用例,并且,本文公开的实施例可适用于任意所述潜在用例。本发明描述了大量示例性用例,但应理解的是,这些例子并非构成限制。

图7示出了可用于根据MPD URL进行媒体片段URL自定义的示例性MPD 700。根据目前的DASH规范,按照客户端来自定义媒体片段URL,需要自定义MPD,这意味着按照客户端创建具体的MPD。图7中的这一用例公开了根据MPD URL自定义媒体片段URL,从而单个MPD也是足够的。其中一目的是允许将令牌从MPD URL传输到媒体片段URL。

假设所述MPD 700在URL http://a.com/x.mpd?token=abcdeXYZ中可以获得,UrlQueryString的处理产生查询串,“token=abcdeXYZ”,则带宽=250的视频表述的第一媒体片段URL为http://a.com/250000/Seg1.mp4v?token=abcdeXYZ。

在媒体内容的播放过程中,可能出现意外的动态事件(例如,篮球比赛中额外的暂停时间)。在这些事件中,广告(ad)或其他信息可以插入到所述媒体内容中。图8示出了可用于进行广告插入和/或参数的实时解析的示例性MPD 800。在这一用例中,查询参数可用于触发广告插入。在生成所述MPD时,所述广告可能未知。因此,应该允许对一些参数的即时解析。在向流客户端流式传输所述媒体内容期间,流服务器可以更新原始MPD,并向流客户端发送所述更新的MPD。所述更新后的MPD反映了生成原始MPD时的意外动态事件。

因此,流服务器发送的对片段请求的响应可以包括即时MPD更新。这一机制有时比事件的自身携带和计划周期性更新效果更佳。可以根据请求解析xlink,并且,得到的查询串为“xlinkparam=somevalue”,则带宽为250kbps的视频表述的第一媒体片段URL为“http://a.com/250000/Seg1.mp4v?xlinkparam=somevalue”。

另一个潜在用例为通过参数使能客户端反馈。查询参数可以是DASH客户端向服务器提供反馈,比如,测量带宽、GPS位置等的一种方式。图9A示出了通过参数-1使能客户端反馈的示例性MPD 900;图9B示出了通过参数-2使能客户端反馈的示例性MPD 950。

图9A和9B中的用例假设“urn:prmDef-1”是指图9C所示的示例性参数描述970,其通过Web应用程序描述语言(WADL)进行编码。进一步地,图9A中用例假设所述MPD 900在URL“http://a.com/x.mpd?pd=$urn:prmDef-1”可以获得。

在所述MPD 900中,UrlQueryString的处理产生查询串,“pd=$urn:prmDef-1”。客户端能够理解所述“urn:prmDef-1”方案并在所述媒体片段URL中插入合适的值(此例子中的GPS位置),其可以形如http://a.com/250000/Seg1.mp4v?location=areaA。

在所述MPD 950中,UrlQueryString的处理产生查询串,“a=$urn:SomeStandardizedBandwidthMeasurement”。客户端可以感知所述信号化的方案并相应地提供测量的带宽值,由此得到http://a.com/Seg1.mp4v?bandwidth=500000。

另一个类似的用例通过图9D所示的MPD 970进行说明。在所述MPD 970中,UrlQueryString元素在三个级别上的处理产生查询串,“a=XYZ&b=EFG&c=RST”,则带宽为250kbps的视频表述的第一媒体片段URL为http://a.com/250000/Seg1.mp4v?parameter1=EFG&parameter2=XYZ。

应理解的是,存在许多其他可以应用本文公开的实施例的潜在用例。例如,URL模板中的流服务器可以请求鉴权码(或者安全令牌)。根据所述URL模板,流客户端可能需要在允许获得任意片段之前访问鉴权码并向流服务器验证其自身的标识。所述鉴权码可以由流客户端、流服务器或者第三方服务器生成,并以任意合适的形式存储。鉴权码可以作为插入查询串的查询参数发送至服务器。从客户端传到服务器的代码或令牌可以更好地利于会话管理。

在另一个示例性用例中,流服务器可以强制播出特定内容,比如,特定区段的广告。在这种情况下,流客户端可以在完成后续片段请求之前提供服务器或网络用来验证的播出证明。所述证明可以由流客户端生成,并以任意合适的形式存储。强制播出机制有时可能比纯粹的CMAS效果更好,例如,当客户端不可靠时。例如,如果客户端已经控制了流媒体,当检测到片段为广告时段时,所述客户端可以只请求下一区段。通过在此公开的参数插入机制,服务器可以向客户端索要所述广告时段已经播出的证明。所述证明作为查询参数给出。所述服务器保持主要内容直到其接收到所述证明。

在另一个示例性用例中,流服务器可以在全视野内完成空域适配。当对高分辨率视频进行流式传输时,客户端可以放大一个特定的区域/角度(例如,在篮球比赛中聚焦在一个特定的球员或者篮筐上)。在这种情况下,感兴趣区域(ROI)和/或视角可以作为查询参数由客户端提供。相应地,流服务器可以提供描绘至少一个所述ROI和所述视角指定的视频信号的一个或多个片段。该能力可以丰富用户体验。

图10是可以由用户端设备(比如,用户端设备130)实现的方法1000的实施例的流程图。所述方法1000始于步骤1010,其中,用户端设备可以获取媒体内容的MPD。所述MPD可以包括用于构造URL的URL模板。在步骤1020中,用户端设备可以在URL的查询串部分插入一个或多个查询参数,其中,所述查询串部分位于所述URL的路径部分的后面。在一实施例中,根据所述URL模板,所述一个或多个查询参数插入到所述查询串部分。所述一个或多个查询参数可以为任一类型的相关参数,例如,客户端鉴权码、授权令牌(比如来自OAuth(授权开放标准)、SAML(OASIS安全断言标记语言SAML)和GAA(3GPP通用鉴权架构)的授权令牌)、表明客户端已经完成播放强制播出内容长度的证明、ROI、客户端功耗、或视角、或URL以获取、获得或检索这些参数中的一个或多个,或者其组合。

在步骤1030中,用户端设备可以向流服务器(例如,流服务器110)发送包括所述URL的媒体请求。在步骤1040中,用户端设备可以从所述流服务器接收响应所述媒体请求的所述媒体内容的一个或多个片段。具体地,所述片段可以作为对所述媒体请求的响应由流服务器至少根据部分所述查询参数来确定。

应理解的是,所述方法1000作为示例性实施例,因此,可以替代性修改所述方法1000,且可以根据需要合并附加的步骤。例如,用户端设备可以在所述媒体内容播放期间监测网络状况和/或设备操作条件,并且,所述网络状况中的一个可以为所述媒体内容播放期间用户端设备可用的带宽。进一步地,所述带宽可以指定为步骤1020中插入的一个所述查询参数。

图11是可以由作为用于媒体内容流的服务器的网络服务器(比如,流服务器110)实现的方法1100的实施例的流程图。所述方法1100始于步骤1110,其中,所述网络服务器可以为媒体内容生成MPD,其中,所述MPD包括指定了所述一个或多个查询参数的URL模板,其中,所述一个或多个查询参数将在所述URL的所述查询串部分携带。在步骤1120中,所述网络服务器可以向通过网络连接与网络服务器连接的流客户端发送所述MPD。

在步骤1130中,所述网络服务器可以从所述流客户端接收URL,其中,所述URL包括路径和位于所述路径后面的查询串,所述查询串包括一个或多个查询参数。在步骤1140中,所述网络服务器可以根据至少一个所述接收的查询参数,为所述流客户端确定待使用的媒体内容的一个或多个片段。在步骤1150中,所述网络服务器可以向所述流客户端发送所述一个或多个片段。

应理解的是,所述方法1100作为示例性实施例,因此,可以根据需要进行修改。例如,当所述MPD和相应的片段可以由不同的网络服务器生成和/或存储时,可以适当地跳过一些步骤,如步骤1110和1120。

图12是计算机系统或网络设备1200的实施例的示意图。所述网络设备1200可以用作任意合适的设备,比如,在此公开的网络服务器、流服务器(比如,流服务器110)或用户端设备(比如,流媒体用户端设备130)予以实现。所述网络设备1200能够接收、处理和发送去向以及来自网络的媒体请求或片段等消息。所述网络设备1200可以包括与接收器(Rx)1212连接的一个或多个入端口1210,其中,所述接收器1212可用于从其他网络组成接收MPD和/或片段。所述网络设备1200还可以包括与发送器(Tx)1232连接的一个或多个出端口1230,其中,所述发送器1232可用于从其他网络组成发送MPD和/或片段。所述网络设备1200还可以包括逻辑单元或处理器1220,其中,所述逻辑单元或处理器1220与所述接收器1212连接,用于处理所述片段或者确定向哪个网络组件发送所述片段。

所述处理器1220可通过硬件或硬件和软件的组合来实现。所述处理器1220可用作一个或多个中央处理器(CPU)芯片、核芯(例如,多核处理器)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或数字信号处理器(DSP)予以实现。所述处理器1220可用于实现在此描述的任意功能模块或单元,例如,适配逻辑单元112、请求解析器114、下发功能116、访问引擎132、媒体引擎136、监测功能134、媒体播放器1221或者本领域普通技术人员熟知的其他任何功能组件,或者其任何组合。所述媒体播放器1221可以为在所述处理器1220上运行的应用程序,用于播放编码的媒体片段。

所述网络设备1200还可以包括至少一个存储器1222。所述存储器1222可用于存储MPD 1223和片段1224。所述MPD 1223和片段1224可以通过以上描述的各种形式进行存储或打包。例如,所述MPD 1223可以为所述MPD 700、800、900、950和970中的任意一个。如图12所示,所述片段1224和所述MPD文件1223作为单独的文件进行存储,但也可以将其存储在单个文件中。

在实践中,可能存在所述网络设备1200处理的双向流量,因此,一些端口可既接收也发送报文(例如,片段)。在这种情况下,所述入端口1210和出端口1230可以是共设在一起的或者可以认为是与收发机(Rx/Tx)连接的相同端口的不同功能。所述处理器1220、所述存储器1222、所述接收器1212和所述发送器1232中的一个或多个也可以用于至少部分实现或支持上文描述的任意方法和实现方式,比如,实现方式200、方法1000和方法1100。

可以理解的是,通过编程和/或加载可执行指令到所述网络设备1200,可以改变所述处理器1220和所述存储器1222的其中一个。其结果是,可以将所述网络设备1200部分转换成特定的机器或装置(例如,具有本发明介绍的功能的网络路由器)。所述可执行指令可存储在所述存储器1222中,并且加载到所述处理器1220中执行。

对于电气工程和软件工程技术至关重要的是,能够按照公认的设计规则将功能转换为硬件实现方式,所述功能可通过将可执行软件加载到计算机来实现。在软件还是硬件中实现某一概念通常取决于对于待生产单元设计稳定性和数量的考虑,而并非考虑任何涉及从软件领域到硬件领域的转换问题。通常,经常变化的设计可以优先在软件中实现,因为重编硬件实施方式要比重编软件实施方式更加昂贵。通常,稳定性好且大批量生产的设计可以优先在硬件中实现,例如,在ASIC中,因为大批量生产的运行使得硬件实施比软件实施更廉价。通常,一项设计可以以软件的形式进行开发和测试,之后根据公认的设计规则转换为专用集成电路中等效的硬件实施方式,在专用集成电路中用硬件来控制所述软件的指令。按照相同的方式,新型ASIC控制的机器是一种特定机器或装置,同样地,已编程和/或加载可执行指令的计算机也可视为一种特定的机器或装置。

本发明中的任何处理可通过使处理器(例如,通用多核处理器)执行计算机程序来实现。在这种情况下,计算机程序可以提供给使用任意类型的非瞬时计算机可读介质的计算机或网络设备。计算机程序产品可存储在计算机或网络设备的非暂时性计算机可读介质中。非暂时性计算机可读介质包括任何类型的有形存储介质。非瞬时计算机可读介质的示例包括磁存储介质(例如,软盘、磁带、硬盘驱动器等)、光磁存储介质(例如,磁光盘)、只读光盘(CD-ROM)、可录光盘(CD-R)、可写光盘(CD-R/W)、数字多功能光盘(DVD)、蓝光(注册商标)光盘(BD)和半导体存储器备(例如,掩膜ROM、可编程ROM(PROM)、可擦除PROM、闪存ROM和随机存取存储器(RAM))。计算机程序产品还可提供给使用任意类型的瞬时计算机可读介质的计算机或网络设备。非暂时性计算机可读介质的示例包括电信号、光信号和电磁波。非暂时性计算机可读介质可通过有线通信链路(例如,电线和光纤)或无线通信线路为计算机提供程序。

本发明公开了至少一项实施例,而且所属领域的普通技术人员对实施例和/或实施例的特征做出的变化、组合和/或修改均在本发明的范围内。通过组合、整合和/或忽略各项实施例的特征而得到的替代性实施例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达范围或限制可以被理解成包括在明确说明的范围或限制内具有相同大小的迭代范围或限制(例如,从约为1到约为10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,只要公开具有下限Rl和上限Ru的数字范围,则明确公开了此范围内的任何数字。具体而言,在所述范围内的以下数字是明确公开的:R=Rl+k*(Ru–Rl),其中k为从1%到100%范围内以1%递增的变量,即,k为1%、2%、3%、4%、5%……50%、51%、52%……95%、96%、97%、98%、99%或100%。此外,由上文所定义的两个数字R定义的任何数字范围也是明确公开的。除非另有说明,否则术语“约”是指随后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应被理解为提供对如“由……组成”、“基本上由……组成”以及“大体上由……组成”等较窄术语的支持。因此,保护范围不受上文所陈述的说明限制,而是由所附权利要求书界定,所述范围包含所附权利要求书的标的物的所有等效物。每一和每条权利要求作为进一步揭示内容并入说明书中,且所附权利要求书是本发明的实施例。对所述揭示内容中的参考进行的论述并非承认其为现有技术,尤其是具有在本申请案的在先申请优先权日期之后的公开日期的任何参考。本发明中所引用的所有专利、专利申请案和公开案的揭示内容特此以引用的方式并入本文本中,其提供补充本发明的示例性、程序性或其它细节。

虽然本发明多个具体实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,各种元件或部件可以在另一系统中组合或合并,或者某些特征可以省略或不实施。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间部件间接地耦合或通信。其它变更、替换、更替示例对本领域技术人员而言是显而易见的,均不脱离此处公开的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1