传输媒体数据的方法、客户端和服务器与流程

专利2022-05-09  150


本申请涉及流媒体传输
技术领域
,并且更具体地,涉及传输媒体数据的方法、客户端和服务器。
背景技术
:iso/iec23090-2标准规范又称为omaf(omnidirectionalmediaformat,全向媒体格式)标准规范,该规范定义了一种媒体应用格式,该媒体应用格式能够在应用中实现全向媒体的呈现,全向媒体主要是指全向视频(360度视频)和相关音频。omaf规范首先指定了可以用于将球面视频转换为二维视频的投影方法的列表,其次是如何使用iso基本媒体文件格式(isobasemediafileformat,isobmff)存储全向媒体和该媒体相关联的元数据,以及如何在流媒体系统中封装全向媒体的数据和传输全向媒体的数据,例如通过基于超文本传输协议(hypertexttransferprotocol,http)的动态自适应流传输(dynamicadaptivestreamingoverhttp,dash),iso/iec23009-1标准中规定的动态自适应流传输。dash定义了媒体呈现描述(mediapresentationdescirption,mpd)文件格式和分片格式。全向视频由一系列的全景图片组成,全景图片内容覆盖三维空间中整个球体表面。全向视频可以包括背景视频画面和覆盖层(overlay)。目前,客户端无法有选择的选取部分覆盖层进行处理。技术实现要素:本申请提供一种传输媒体数据的方法、客户端和服务器,支持在dashmpd文件中表示覆盖层优先级,使得客户端可以按覆盖层优先级顺序选择和处理覆盖层。本申请还提供一种传输媒体数据的方法、客户端和服务器,支持在dashmpd文件中表示覆盖层解码能力要求,使得客户端可以根据覆盖层的解码能力要求和客户端的解码能力选择和处理覆盖层。第一方面,提供了一种传输媒体数据的方法,该方法包括:客户端接收媒体呈现描述mpd文件,mpd文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级;客户端根据优先级指示信息处理一个或多个覆盖层。该方法中,mpd文件包括了优先级指示信息,客户端可以根据覆盖层的优先级指示信息选择优先处理的覆盖层。在一种可能的方式中,该方法还包括:客户端根据mpd文件获取一个或多个覆盖层。在一种可能的方式中,客户端根据优先级指示信息处理一个或多个覆盖层包括:在所述客户端的处理资源不足的条件下,根据所述客户端的处理资源所支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序处理所述个数的覆盖层。在一种实现方式中,客户端根据客户端的处理资源所支持处理的覆盖层个数和mpd文件,按照一个或多个覆盖层的优先级从高到低的顺序获取支持处理的覆盖层个数的覆盖层的码流数据进行处理。在一种实现方式中,客户端根据mpd文件获取一个或多个覆盖层,并根据客户端的处理资源所支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序选择解码支持处理的覆盖层个数的覆盖层的码流数据。在一种实现方式中,客户端根据mpd文件获取一个或多个覆盖层,并根据客户端的处理所资源支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序选择显示支持处理的覆盖层个数的覆盖层。在一种可能的方式中,优先级指示信息为mpd文件中的覆盖层描述字的属性信息。在一种可能的方式中,覆盖层描述字的属性信息还包括一个或多个覆盖层的标识。在一种可能的方式中,优先级指示信息中,任一覆盖层的优先级的值越小,覆盖层的优先级越高。在另一种可能的方式中,优先级指示信息中,任一覆盖层的优先级的值越大,覆盖层的优先级越高。在一种可能的方式中,优先级指示信息包括一个优先级值,一个优先级值用于指示一个或多个覆盖层的优先级。在一种可能的方式中,一个或多个覆盖层为m个覆盖层,优先级指示信息包括m个优先级值,m个优先级值用于指示m个覆盖层的优先级,m为正整数。在一种可能的方式中,m个优先级值中的第n个值用于指示m个覆盖层中的第n个覆盖层的优先级,n为小于或者等于m的正整数。在一种可能的方式中,覆盖层描述字位于mpd文件的自适应集中。在一种可能的方式中,mpd文件包括m个覆盖层的覆盖层描述字,其中,m个覆盖层中一个或多个覆盖层的覆盖层描述字包括优先级指示信息,m大于或等于1。这种方式中,一些覆盖层描述字中不携带优先级指示信息。第二方面,提供了一种传输媒体数据的方法,该方法包括:服务器确定一个或多个覆盖层的优先级;并发送媒体呈现描述mpd文件,mpd文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级。应理解,上述第一方面中对于覆盖层的优先级指示信息的相应内容的限定和解释同样适用于第二方面中的各个实现方式;此处不再赘述第三方面,提供了一种传输媒体数据的方法,该方法包括:客户端接收媒体呈现描述mpd文件,mpd文件包括覆盖层的解码能力要求指示信息;解码能力要求指示信息用于指示解码覆盖层所需的解码能力的要求;客户端根据覆盖层的解码能力要求指示信息处理覆盖层。在该方法中,支持在dashmpd文件中表示覆盖层解码能力要求,使得客户端可以根据覆盖层的解码能力要求和客户端的解码能力选择和处理覆盖层。其中,所需的解码能力包括所需要支持的图像分辨率。在一种可能的方式中,解码能力要求指示信息包括解码能力宽度要求指示信息和解码能力高度要求指示信息;解码能力宽度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的宽度,解码能力高度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的高度;其中,所需要支持的图像分辨率为所需要支持的图像分辨率的宽度与所需要支持的图像分辨率的高度的乘积。在一种可能的方式中,覆盖层的解码能力要求指示信息为mpd文件中的覆盖层的覆盖层描述字的属性信息。在一种可能的方式中,覆盖层描述字的属性信息还包括覆盖层的标识。在一种可能的方式中,覆盖层描述字位于mpd文件的自适应集中。在一种可能的方式中,覆盖层包括一个或多个覆盖层,客户端根据覆盖层的解码能力要求指示信息处理所述覆盖层包括:如果客户端的解码能力大于一个或多个覆盖层的解码能力要求指示信息指示的解码能力要求的和,客户端处理覆盖层。在一种可能的方式中,mpd文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级;客户端根据覆盖层的解码能力要求指示信息处理覆盖层包括:如果客户端的解码能力小于一个或多个覆盖层的解码能力要求指示信息指示的解码能力要求的和,客户端根据一个或多个覆盖层的优先级选择优先处理的覆盖层进行处理,客户端的解码能力大于或者等于优先处理的覆盖层的解码能力要求指示信息指示的解码能力要求的和。在一种可能的方式中,mpd文件包括m个覆盖层的覆盖层描述字,其中,m个覆盖层中一个或多个覆盖层的覆盖层描述字包括解码能力要求指示信息,m大于或等于1。这种方式中,一些覆盖层描述字中不携带解码能力要求指示信息。第四方面,提供了一种传输媒体数据的方法,该方法包括:服务器确定覆盖层的解码能力要求;服务器发送媒体呈现描述mpd文件,mpd文件包括覆盖层的解码能力要求指示信息;解码能力要求指示信息用于指示解码覆盖层所需的解码能力的要求。在该方法中,支持在dashmpd文件中表示覆盖层解码能力要求,使得客户端可以根据覆盖层的解码能力要求和客户端的解码能力选择和处理覆盖层。其中,所需的解码能力包括所需要支持的图像分辨率。应理解,上述第三方面中对于解码能力要求指示信息的相应内容的限定和解释同样适用于第四方面中的各个实现方式;此处不再赘述第五方面,提供一种客户端,该客户端包括用于执行上述第一方面或第三方面中任意一种实现方式中的方法的模块。第六方面,提供一种服务器,该服务器包括用于执行上述第二方面或第四方面中任意一种实现方式中的方法的模块。第七方面,提供一种客户端,包括:相互耦合的非易失性存储器和处理器;其中,所述处理器用于调用存储在所述存储器中的程序代码以执行第一方面或第三方面中的任意一种实现方式中的方法的部分或全部步骤。第八方面,提供一种服务器,包括:相互耦合的非易失性存储器和处理器;其中,所述处理器用于调用存储在所述存储器中的程序代码以执行第二方面或第四方面中的任意一种实现方式中的方法的部分或全部步骤。第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第一方面、第二方面、第三方面以及第四方面中的任意一种实现方式中的方法的部分或全部步骤的指令。第十方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面、第二方面、第三方面以及第四方面中的任意一种实现方式中的方法的部分或全部步骤的指令。附图说明图1是本申请实施例所适用的一种系统框架示意图一;图2是本申请实施例所适用的一种系统框架示意图二;图3是本申请实施例的传输媒体数据的方法的示意性流程图一;图4是本申请实施例的传输媒体数据的方法的示意性流程图二;图5是本申请实施例的客户端的示意性框图一;图6是本申请实施例的服务器的示意性框图一;图7是本申请实施例的客户端的示意性框图二;图8是本申请实施例的服务器的示意性框图二;图9是本申请实施例的传输媒体数据的装置的硬件结构示意图。具体实施方式下面将结合附图,对本申请中的技术方案进行描述。本申请提供的技术方案可以应用于图1所示的系统架构中,该系统架构中可以包括服务器以及与服务器连接的一个或多个终端设备。服务器用于为终端设备提供媒体数据服务,比如,可以根据客户端反馈的信息(如用户视角等),选择需要传输的内容,并将信号传输至终端设备。终端设备可以是具有播放全景视频功能的设备,比如,vr设备,手机,平板电脑,电视,电脑等可以连接网络的电子设备。终端设备上运行有客户端,客户端可以是位于终端设备上为用户提供全景视频播放服务的程序。应注意,图1所示的系统架构仅用于举例,并非用于限制本申请的技术方案。本领域的技术人员应当明白,在具体实现过程中,该系统架构中还可能包括其他设备,比如,服务器和终端设备之间可以包括内容分发网络设备。在一种示例中,图1所示的系统架构可以为图2所示的形式。服务器包括编码前处理器、视频编码器、码流封装单元和发送传输单元。服务器接收全向视频,对全向视频进行前处理,编码或转码的操作,并将编码后的码流数据封装为符合传输格式的文件,通过发送传输单元进行发送。媒体数据通过网络传输到终端设备或者内容分发网络。终端设备包括接收单元、码流解封装单元、视频解码器和显示单元。终端设备接收服务器发送的媒体数据,并进行码流解封装以及解码和显示。此外,服务器还可以根据终端设备的反馈信息(比如用户视角等),选择传输的媒体数据内容。下面对本申请中涉及的部分术语进行解释说明:1、覆盖层全向视频可以包括背景视频画面和覆盖层,覆盖层是在背景视频画面的某个区域之上额外叠加渲染的一层视频或者图片或者文本。2、mpd文件mpd文件是iso/iec23009-1标准规定的全向媒体数据传输协议dash中定义的一种文档,在mpd文件中包含了客户端构造http统一资源定位符(httpuniformresourcelocator,http-url)的元数据。在mpd文件中包含一个或者多个周期(period)元素,每个周期元素包含有一个或者多个自适应集(adaptationset),每个自适应集中包含一个或者多个表示(representation),每个表示中包含一个或者多个分段,客户端可以根据mpd文件中的信息选择表达,并构建分段的http-url。3、本文中的术语“多个”是指两个或两个以上。本文中的术语“第一”和“第二”是用于区别不同的对象,而不是用于描述对象的特定顺序。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。本申请实施例提供一种传输媒体数据的方法,应用于图1或图2所示的系统架构,如图3所示,该方法可以包括s101-s106:s101、服务器获取全向视频码流。服务器获取全向视频码流,全向视频码流包括背景视频码流和覆盖层码流覆盖层码流;其中,一个覆盖层码流对应一个覆盖层。其中,覆盖层码流可以是单独的码流,也可以是背景视频码流的一部分。示例性的,服务器可以从视频服务提供设备获取全向视频码流。s102、服务器对全向视频码流进行封装。服务器将全向视频码流按照视频文件格式封装。比如,按照iso基本媒体文件格式封装。在一种实现方式中,服务器可以将全向视频码流整体封装为全向视频码流数据包;在另一种实现方式中,服务器可以将背景视频码流封装成背景视频码流数据包,将一个或多个覆盖层码流封装成一个或多个覆盖层码流数据包,一个覆盖层码流数据包对应一个覆盖层。在一种实现方式中,可以由图2所示的服务器的码流封装单元对全向视频码流进行封装。s103、服务器确定覆盖层优先级。服务器确定每个覆盖层的优先级。比如,服务器可以根据视频服务提供设备的指示确定每个覆盖层的优先级;比如,服务器也可以根据覆盖层的内容确定每个覆盖层的优先级。示例性的,覆盖层1的内容是对背景视频内容的补充,有助于观众理解背景视频的故事。覆盖层2的内容与背景视频内容无关,例如广告,则服务器可设定覆盖层1的优先级高于覆盖层2的优先级。服务器根据每个覆盖层的优先级生成优先级指示信息,每个优先级指示信息用于指示一个或多个覆盖层的优先级。服务器将每个覆盖层的优先级指示信息写入dashmpd文件中。在一种实现方式中,优先级指示信息为dashmpd文件中的覆盖层描述字的属性信息。具体的,在omaf标准中定义了覆盖层在dashmpd文件中的格式。示例性的,omaf标准在mpd文件中定义了覆盖层描述字(overlaydescriptor),覆盖层描述字包括用于描述覆盖层相关内容的各个属性信息;示例性的,覆盖层描述字的@schemeiduri为"urn:mpeg:mpegi:omaf:2018:ovly"。dashmpd文件的一个自适应集(adaptationset)中包括最多一个覆盖层描述字,覆盖层描述字用于描述与该自适应集所关联的覆盖层;如果该自适应集没有关联的覆盖层,自适应集(adaptationset)中不包括覆盖层描述字。在一种实现方式中,覆盖层描述字的属性信息还可以包括覆盖层的标识。示例性的,一个覆盖层描述字的格式定义如表1所示。表1覆盖层描述字规则数据类型描述valuem无符号整型集以空白符间隔的覆盖层的标识priority0..1整型覆盖层的优先级其中,value为覆盖层的标识,指示一个或多个覆盖层的标识。priority为优先级指示信息;规则m表示该属性必须出现,规则0..1表示该属性不出现或者只出现一个。当存在多个覆盖层时,priority则表示该覆盖层描述字下的多个覆盖层优先级均为该priority值。另一示例中,一个覆盖层描述字的格式定义如表2所示。表2覆盖层描述字规则数据类型描述valuem无符号整型集以空白符间隔的覆盖层的标识priority0..1无符号整型集以空白符间隔的覆盖层的优先级其中,value为覆盖层的标识,指示一个或多个覆盖层的标识。priority为优先级指示信息,指示一个或多个覆盖层的优先级,其个数和顺序与value值中覆盖层的个数和顺序相同,其中优先级指示信息中第n个值指示value中第n个标识指示的覆盖层的优先级,n为正整数;规则m表示该属性必须出现,规则0..1表示该属性不出现或者只出现一个。另一示例中,一个覆盖层描述字的格式定义如表3所示。表3其中,value为覆盖层的标识,指示一个或多个覆盖层的标识。ovelayinfo为覆盖层信息,priority为优先级指示信息;当存在多个覆盖层时,priority则表示该覆盖层描述字下的多个覆盖层优先级均为该priority值。规则m表示该属性必须出现,规则1表示该属性出现一个,规则0..1表示该属性不出现或者出现一个。另一示例中,一个覆盖层描述字的格式定义如表4所示。表4其中,value为覆盖层的标识,指示一个或多个覆盖层的标识。ovelayinfo为覆盖层信息,priority为优先级指示信息;指示一个或多个覆盖层的优先级,其个数和顺序与value值中覆盖层的个数和顺序相同,其中优先级指示信息中第n个值指示value中第n个标识指示的覆盖层的优先级,n为正整数。规则m表示该属性必须出现,规则1表示该属性出现一个,规则0..1表示该属性不出现或者出现一个。需要说明的是,优先级指示信息属性是可以不出现的,也就是,服务器可以不填写某些覆盖层的优先级。mpd文件中如果包括m个覆盖层的覆盖层描述字,m大于或等于1;m个覆盖层中一个或多个覆盖层的覆盖层描述字包括优先级指示信息。在一种实现方式中,优先级指示信息中,任一覆盖层的优先级的值越小,该任一覆盖层的优先级越高。示例性的,覆盖层1的优先级的值为1,覆盖层2的优先级的值为2,则覆盖层1的优先级高于覆盖层2的优先级。在一种实现方式中,优先级指示信息中,任一覆盖层的优先级的值越大,该任一覆盖层的优先级越高。示例性的,覆盖层1的优先级的值为1,覆盖层2的优先级的值为2,则覆盖层2的优先级高于覆盖层1的优先级。示例性的,一个mpd文件中的优先级指示信息可以表示为如下所示的形式:如上所示,在dashmpd的自适应集(adaptationset)里用覆盖层描述字分别描述了两个覆盖层,其中一个覆盖层的标识值为1,优先级值为1,另一个覆盖层的标识值为2,优先级值为2。另一示例中,一个mpd文件中的优先级指示信息可以表示为如下所示的形式:如上所示,在dashmpd的自适应集(adaptationset)里用覆盖层描述字描述了两个覆盖层,其中一个覆盖层的标识值为1,优先级值为1,另一个覆盖层的标识值为2,优先级值为2。s104、服务器发送mpd文件。服务器发送mpd文件,mpd文件包括优先级指示信息。示例性的,由图2所示的服务器的发送传输单元发送mpd文件。s105、客户端接收mpd文件。客户端接收mpd文件,mpd文件包括优先级指示信息。客户端获取一个或多个覆盖层的优先级。s106、客户端根据优先级指示信息处理覆盖层。客户端获取覆盖层的码流数据。示例性的,覆盖层的码流数据可以是由服务器发送的覆盖层码流数据包;覆盖层的码流数据也可以是服务器发送的背景视频码流数据包中的一部分码流数据。在一种实现方式中,客户端接收mpd文件之后,可以根据mpd文件获取一个或多个覆盖的码流数据。在一种实现方式中,在客户端的处理资源不足的条件下,比如,客户端的视频解码器、中央处理器(centralprocessingunit,cpu)或图形处理器(graphicsprocessingunit,gpu)等的资源不足,客户端可以根据客户端的处理资源所支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序处理该支持处理的覆盖层个数的覆盖层。示例性的,客户端的处理资源不足,只能处理一个覆盖层,覆盖层1的优先级的值为1,覆盖层2的优先级的值为2,覆盖层1的优先级高于覆盖层2的优先级,则客户端将覆盖层1显示在背景视频图像上。在一种实现方式中,客户端根据mpd文件中的覆盖层的标识确认服务器可以提供的覆盖层。客户端根据客户端的处理资源所支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序,在服务器可以提供的覆盖层中,选择其支持处理的覆盖层个数的覆盖层,向服务器请求获取选择的覆盖层的码流数据。服务器向客户端发送客户端请求的覆盖层。客户端在获取到请求的一个或多个覆盖层的码流数据后,解码该一个或多个覆盖层的码流数据,并将对应的覆盖层显示在背景视频图像上。在一种实现方式中,客户端根据mpd文件中的覆盖层的标识确认服务器可以提供的覆盖,并向服务器请求获取这些覆盖层的码流数据。服务器向客户端发送客户端请求的覆盖层。客户端接收到覆盖层的码流数据后,根据客户端的所处理资源支持处理的覆盖个数,按照一个或多个覆盖层的优先级从高到低的顺序选择解码其支持处理的覆盖层个数的覆盖层的码流数据,并将解码后的覆盖层显示在背景视频图像上。在一种实现方式中,客户端根据mpd文件中的覆盖层的标识确认服务器可以提供的覆盖层,并向服务器请求获取这些覆盖层的码流数据。服务器向客户端发送客户端请求的覆盖层。客户端接收到覆盖层的码流数据后,解码接收到的覆盖层的码流数据,并根据客户端的处理资源所支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序选择其支持处理的覆盖层个数的覆盖层显示在背景视频图像上。需要说明的是,在mpd文件中,优先级指示信息可以不出现。在一种实现方式中,对于没有获取到优先级指示信息的覆盖层,如果该覆盖层是基本的(比如,在mpd文件中以essentialproperty表示),则该覆盖层必须处理,客户端不考虑该覆盖层的优先级,处理该覆盖层;如果该覆盖层是辅助性的(比如,在mpd文件中以supplementalproperty表示),则该覆盖层是可选择处理的,客户端确定该覆盖层的优先级低于获取到优先级指示信息的覆盖层的优先级。目前,omaf标准中规定的isobmff中,定义了覆盖层的基本数据结构和携带方式,其中包括定义覆盖层优先级的参数。但是在传输全向媒体的数据的协议dashmpd文件中,没有定义可以指示覆盖层优先级的参数,客户端无法根据覆盖层的优先级对覆盖层进行选择处理。本申请实施例提供的传输媒体数据的方法,在dashmpd文件中包括了覆盖层的优先级指示信息,客户端可以根据优先级指示信息指示的覆盖层的优先级,选择进行处理的覆盖层。本申请实施例提供一种传输媒体数据的方法,应用于图1或图2所示的系统架构,如图4所示,该方法可以包括s201-s206:s201、服务器获取全向视频码流。其中,s201的具体描述可参考s101,此处不再赘述。s202、服务器对全向视频码流进行封装。其中,s202的具体描述可参考s102,此处不再赘述。s203、服务器确定覆盖层的解码能力要求。服务器确定每个覆盖层的解码能力要求。比如,服务器可以根据视频服务提供设备的指示确定每个覆盖层的解码能力要求;比如,服务器也可以根据覆盖层的内容(比如,覆盖层的分辨率)确定每个覆盖层的解码能力要求。覆盖层的解码能力要求包括解码覆盖层所需要支持的图像分辨率;比如,如果一个覆盖层需要解码且其码流分辨率为1920x1080,则该覆盖层的解码能力要求为1920x1080。服务器根据每个覆盖层的解码能力要求生成解码能力要求指示信息,解码能力要求指示信息用于指示解码覆盖层所需的解码能力的要求。其中,一个解码能力要求指示信息包括一个解码能力宽度要求指示信息和一个解码能力高度要求指示信息;解码能力宽度要求指示信息用于指示解码所述覆盖层所需要支持的图像分辨率的宽度,解码能力高度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的高度;所需要支持的图像分辨率为需要支持的图像分辨率的宽度与所需要支持的图像分辨率的高度的乘积。服务器将每个覆盖层的解码能力要求指示信息写入dashmpd文件中。在一种实现方式中,解码能力要求指示信息为dashmpd文件中的一个覆盖层的覆盖层描述字的属性信息。具体的,在omaf标准中定义了覆盖层在dashmpd文件中的格式。示例性的,omaf标准在mpd文件中定义了覆盖层描述字(overlaydescriptor),覆盖层描述字包括用于描述覆盖层相关内容的各个属性信息;示例性的,覆盖层描述字的@schemeiduri为"urn:mpeg:mpegi:omaf:2018:ovly"。dashmpd文件的一个自适应集(adaptationset)中可以包括最多一个覆盖层描述字,覆盖层描述字用于描述与该自适应集所关联的覆盖层;如果该自适应集没有关联的覆盖层,自适应集(adaptationset)中不包括覆盖层描述字。在一种实现方式中,覆盖层描述字的属性信息还可以包括覆盖层的标识。示例性的,一个覆盖层描述字的格式定义如表5所示。表5其中,value为覆盖层的标识,decoding_width为解码能力宽度要求指示信息,decoding_height为解码能力高度要求指示信息;规则m表示该属性必须出现,规则0..1表示该属性不出现或者只出现一个。另一示例中,一个覆盖层描述字的格式定义如表6所示。表6其中,value为覆盖层的标识,ovelayinfo为覆盖层信息,decoding_width为解码能力宽度要求指示信息,decoding_height为解码能力高度要求指示信息;规则m表示该属性必须出现,规则1表示该属性只出现一个,规则0..1表示该属性不出现或者只出现一个。需要说明的是,解码能力要求指示信息属性是可以不出现的,也就是,服务器可以不填写某些覆盖层的解码能力高度要求。mpd文件中如果包括m个覆盖层的覆盖层描述字,m大于或等于1;m个覆盖层中一个或多个覆盖层的覆盖层描述字包括解码能力要求指示信息。示例性的,一个mpd文件中的解码能力要求指示信息可以表示为如下所示的形式:如上所示,在dashmpd的自适应集(adaptationset)里用覆盖层描述字描述了一个标识值为1的覆盖层,该覆盖层的解码能力要求为1920x1080。s204、服务器发送mpd文件。服务器发送mpd文件,mpd文件包括覆盖层的解码能力要求指示信息。示例性的,由图2所示的服务器的发送传输单元发送mpd文件。s205、客户端接收mpd文件。客户端接收mpd文件,mpd文件包括覆盖层的解码能力要求指示信息。客户端获取一个或多个覆盖层的解码能力要求指示信息。s206、客户端根据解码能力要求指示信息处理覆盖层。在一种实现方式中,客户端可以根据mpd文件获取一个或多个覆盖层。比如,客户端根据mpd文件中的覆盖层的标识确认服务器可以提供的覆盖层,并向服务器请求获取这些覆盖层。服务器向客户端发送客户端请求的覆盖层的码流数据。示例性的,覆盖层的码流数据可以是由服务器发送的覆盖层码流数据包;覆盖层的码流数据也可以是服务器发送的背景视频码流数据包中的一部分码流数据。客户端根据mpd文件中的一个或多个覆盖层的解码能力要求指示信息处理获取到的一个或多个覆盖层。在一种实现方式中,如果客户端的解码能力大于mpd文件中一个或多个覆盖层的解码能力要求指示信息指示的解码能力要求的和,客户端处理该覆盖层。比如,客户端的解码能力为4k;mpd文件中包括两个覆盖层的解码能力要求指示信息,其中一个覆盖层的解码能力要求是1k,另一个覆盖层的解码能力要求是2k;客户端确定其解码能力大于这两个覆盖层的解码能力要求,则客户端可以解码这两个覆盖层的码流数据。需要说明的是,在mpd文件中,解码能力要求指示信息可以不出现,客户端可以不考虑该覆盖层的解码能力要求。进一步的,客户端可以结合覆盖层的优先级和解码能力要求选择处理的覆盖层。在一种实现方式中,如果客户端的解码能力小于mpd文件中一个或多个覆盖层的解码能力要求指示信息指示的解码能力要求的和,客户端不能解码该一个或多个覆盖层,示例性的,其为客户端的处理资源不足的一种情况,客户端可以根据一个或多个覆盖层的优先级选择优先处理的覆盖层进行处理,其中,客户端的解码能力大于或者等于优先处理的覆盖层的解码能力要求指示信息指示的解码能力要求的和。需要说明的是,一个覆盖层的解码能力要求指示信息指示的解码能力要求的和为该一个覆盖层的解码能力要求指示信息指示的解码能力要求自身。示例性的,客户端的解码能力为4k;mpd文件中包括三个覆盖层的解码能力要求指示信息,其中覆盖层1的解码能力要求是1k,覆盖层2的解码能力要求是2k,覆盖层3的解码能力要求是2k;客户端确定其解码能力小于这三个覆盖层的解码能力要求之和,客户端可以根据这三个覆盖层的优先级选择优先进行处理的覆盖层。比如,覆盖层的优先级的值越小,该覆盖层的优先级越高;覆盖层1的优先级的值为1,覆盖层2的优先级的值为2,覆盖层3的优先级的值为1,则覆盖层1和覆盖层3的优先级高于覆盖层2的优先级;客户端选择处理覆盖层1和覆盖层3。本申请实施例提供的传输媒体数据的方法,在mpd文件中包括了覆盖层的解码能力要求指示信息,客户端可以根据解码能力要求指示信息指示的覆盖层的解码能力要求和客户端的解码能力,确定是否处理覆盖层。上述主要从服务器和客户端交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,服务器和客户端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。本申请实施例可以根据上述方法示例对服务器和客户端进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。图5为本发明实施例提供的客户端500的示意性框图,客户端500包括:接收模块501,用于接收媒体呈现描述mpd文件,mpd文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级。处理模块502,用于根据优先级指示信息处理一个或多个覆盖层。作为一个实施例,处理模块502具体用于:在客户端的处理资源不足的条件下,根据客户端的处理资源所支持处理的覆盖层个数,按照一个或多个覆盖层的优先级从高到低的顺序处理该个数的覆盖层。作为一个实施例,优先级指示信息为mpd文件中的覆盖层描述字的属性信息。作为一个实施例,覆盖层描述字的属性信息还包括覆盖层的标识。作为一个实施例,优先级指示信息包括一个优先级值,一个优先级值用于指示一个或多个覆盖层的优先级。作为一个实施例,一个或多个覆盖层为m个覆盖层,优先级指示信息包括m个优先级值,m个优先级值用于指示m个覆盖层的优先级,m为正整数。作为一个实施例,m个优先级值中的第n个值用于指示m个覆盖层中的第n个覆盖层的优先级,n为小于或者等于m的正整数。作为一个实施例,覆盖层描述字位于mpd文件的自适应集中。应理解,本发明实施例中的处理模块502可以由处理器或处理器相关电路组件实现,接收模块501可以由收发器或收发器相关电路组件实现。图6为本发明实施例提供的服务器600的示意性框图,服务器600包括:处理模块601,用于确定一个或多个覆盖层的优先级。发送模块602,用于发送媒体呈现描述mpd文件,mpd文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级。作为一个实施例,优先级指示信息为mpd文件中的一个或多个覆盖层的覆盖层描述字的属性信息。作为一个实施例,覆盖层描述字的属性信息还包括一个或多个覆盖层的标识。作为一个实施例,优先级指示信息包括一个优先级值,一个优先级值用于指示一个或多个覆盖层的优先级。作为一个实施例,一个或多个覆盖层为m个覆盖层,优先级指示信息包括m个优先级值,m个优先级值用于指示m个覆盖层的优先级,m为正整数。应理解,本发明实施例中的处理模块601可以由处理器或处理器相关电路组件实现,发送模块602可以由收发器或收发器相关电路组件实现。图7为本发明实施例提供的客户端700的示意性框图,客户端700包括:接收模块701,用于接收媒体呈现描述mpd文件,mpd文件包括覆盖层的解码能力要求指示信息;解码能力要求指示信息用于指示解码覆盖层所需的解码能力的要求。处理模块702,用于根据覆盖层的解码能力要求指示信息处理覆盖层。其中,所需的解码能力包括所需要支持的图像分辨率。作为一个实施例,解码能力要求指示信息包括解码能力宽度要求指示信息和解码能力高度要求指示信息;解码能力宽度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的宽度,解码能力高度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的高度;其中,所需要支持的图像分辨率为所需要支持的图像分辨率的宽度与所需要支持的图像分辨率的高度的乘积。作为一个实施例,覆盖层的解码能力要求指示信息为mpd文件中的覆盖层的覆盖层描述字的属性信息。作为一个实施例,覆盖层描述字的属性信息还包括覆盖层的标识。作为一个实施例,覆盖层描述字位于mpd文件的自适应集中。作为一个实施例,该覆盖层包括一个或多个覆盖层,处理模块702具体用于:如果客户端的解码能力大于一个或多个覆盖层的解码能力要求指示信息指示的解码能力要求的和,处理该覆盖层。作为一个实施例,mpd文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级;处理模块702具体用于:如果客户端的解码能力小于一个或多个覆盖层的解码能力要求指示信息指示的解码能力要求的和,根据一个或多个覆盖层的优先级选择优先处理的覆盖层进行处理,客户端的解码能力大于或者等于优先处理的覆盖层的解码能力要求指示信息指示的解码能力要求的和。应理解,本发明实施例中的处理模块702可以由处理器或处理器相关电路组件实现,接收模块701可以由收发器或收发器相关电路组件实现。图8为本发明实施例提供的服务器800的示意性框图,服务器800包括:处理模块801,用于确定覆盖层的解码能力要求.发送模块802,用于发送媒体呈现描述mpd文件,mpd文件包括覆盖层的解码能力要求指示信息;解码能力要求指示信息用于指示解码覆盖层所需的解码能力的要求。其中,所需的解码能力包括所需要支持的图像分辨率。作为一个实施例,解码能力要求指示信息包括解码能力宽度要求指示信息和解码能力高度要求指示信息;解码能力宽度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的宽度,解码能力高度要求指示信息用于指示解码覆盖层所需要支持的图像分辨率的高度;其中,所需要支持的图像分辨率为需要支持的图像分辨率的宽度与所需要支持的图像分辨率的高度的乘积。作为一个实施例,覆盖层的解码能力要求指示信息为mpd文件中的覆盖层的覆盖层描述字的属性信息。作为一个实施例,覆盖层描述字的属性信息还包括覆盖层的标识。应理解,本发明实施例中的处理模块801可以由处理器或处理器相关电路组件实现,发送模块802可以由收发器或收发器相关电路组件实现。图9是本申请实施例的传输媒体数据的装置的硬件结构示意图。图9所示的装置900可以视为是一种计算机设备,装置900可以作为本申请实施例的客户端500、服务器600、客户端700或服务器800的一种实现方式,也可以作为本申请实施例的传输媒体数据的方法的一种实现方式,装置900包括处理器910、存储器920、输入/输出接口930和总线950,还可以包括通信接口940。其中,处理器910、存储器920、输入/输出接口930和通信接口940通过总线950实现彼此之间的通信连接。处理器910可以采用通用的中央处理器(centralprocessingunit,cpu),微处理器,应用专用集成电路(applicationspecificintegratedcircuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的客户端或者服务器中的模块所需执行的功能,或者执行本申请方法实施例的传输媒体数据的方法。处理器910可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器910中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器910可以是通用处理器、数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器920,处理器910读取存储器920中的信息,结合其硬件完成本申请实施例的客户端或者服务器中包括的模块所需执行的功能,或者执行本申请方法实施例的传输媒体数据的方法。存储器920可以是只读存储器(readonlymemory,rom),静态存储设备,动态存储设备或者随机存取存储器(randomaccessmemory,ram)。存储器920可以存储操作系统以及其他应用程序。在通过软件或者固件来实现本申请实施例的客户端或者服务器中包括的模块所需执行的功能,或者执行本申请方法实施例的传输媒体数据的方法时,用于实现本申请实施例提供的技术方案的程序代码保存在存储器920中,并由处理器910来执行客户端或者服务器中包括的模块所需执行的操作,或者执行本申请方法实施例提供的传输媒体数据的方法。输入/输出接口930用于接收输入的数据和信息,输出操作结果等数据。通信接口940使用例如但不限于收发器一类的收发装置,来实现装置900与其他设备或通信网络之间的通信。可以作为处理装置中的获取模块或者发送模块。总线950可包括在装置900各个部件(例如处理器910、存储器920、输入/输出接口930和通信接口940)之间传送信息的通路。应注意,尽管图9所示的装置900仅仅示出了处理器910、存储器920、输入/输出接口930、通信接口940以及总线950,但是在具体实现过程中,本领域的技术人员应当明白,装置900还包括实现正常运行所必须的其他器件,例如还可以包括显示器,用于显示要播放的视频数据。同时,根据具体需要,本领域的技术人员应当明白,装置900还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,装置900也可仅仅包括实现本申请实施例所必须的器件,而不必包括图9中所示的全部器件。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。、上述任一种设备或装置的技术效果可以参考对应方法实施例的技术效果,此处不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 
技术特征:

1.一种传输媒体数据的方法,其特征在于,包括:

客户端接收媒体呈现描述mpd文件,所述mpd文件包括优先级指示信息;其中,所述优先级指示信息用于指示一个或多个覆盖层的优先级;

所述客户端根据所述优先级指示信息处理所述一个或多个覆盖层。

2.根据权利要求1述的方法,其特征在于,所述优先级指示信息为所述mpd文件中的覆盖层描述字的属性信息。

3.根据权利要求2所述的方法,其特征在于,

所述覆盖层描述字的属性信息还包括一个或多个覆盖层的标识。

4.根据权利要求1-3任意一项所述的方法,其特征在于,所述优先级指示信息包括一个优先级值,所述一个优先级值用于指示所述一个或多个覆盖层的优先级。

5.根据权利要求1-3任意一项所述的方法,其特征在于,所述一个或多个覆盖层为m个覆盖层,所述优先级指示信息包括m个优先级值,所述m个优先级值用于指示所述m个覆盖层的优先级,m为正整数。

6.根据权利要求5所述的方法,其特征在于,所述m个优先级值中的第n个值用于指示所述m个覆盖层中的第n个覆盖层的优先级,n为小于或者等于m的正整数。

7.一种传输媒体数据的方法,其特征在于,包括:

服务器确定一个或多个覆盖层的优先级;

所述服务器发送媒体呈现描述mpd文件,所述mpd文件包括优先级指示信息;其中,所述优先级指示信息用于指示所述一个或多个覆盖层的优先级。

8.根据权利要求7所述的方法,其特征在于,所述优先级指示信息为所述mpd文件中的所述一个或多个覆盖层的覆盖层描述字的属性信息。

9.根据权利要求8所述的方法,其特征在于,

所述覆盖层描述字的属性信息还包括所述一个或多个覆盖层的标识。

10.根据权利要求7-9任意一项所述的方法,其特征在于,所述优先级指示信息包括一个优先级值,所述一个优先级值用于指示所述一个或多个覆盖层的优先级。

11.根据权利要求7-9任意一项所述的方法,其特征在于,所述一个或多个覆盖层为m个覆盖层,所述优先级指示信息包括m个优先级值,所述m个优先级值用于指示所述m个覆盖层的优先级,m为正整数。

12.一种客户端,其特征在于,包括:

接收模块,用于接收媒体呈现描述mpd文件,所述mpd文件包括优先级指示信息;其中,所述优先级指示信息用于指示一个或多个覆盖层的优先级;

处理模块,用于根据所述优先级指示信息处理所述一个或多个覆盖层。

13.根据权利要求12所述的客户端,其特征在于,所述优先级指示信息为所述mpd文件中的覆盖层描述字的属性信息。

14.根据权利要求13所述的客户端,其特征在于,

所述覆盖层描述字的属性信息还包括一个或多个覆盖层的标识。

15.根据权利要求12-14任意一项所述的客户端,其特征在于,所述优先级指示信息包括一个优先级值,所述一个优先级值用于指示所述一个或多个覆盖层的优先级。

16.根据权利要求12-14任意一项所述的客户端,其特征在于,所述一个或多个覆盖层为m个覆盖层,所述优先级指示信息包括m个优先级值,所述m个优先级值用于指示所述m个覆盖层的优先级,m为正整数。

17.根据权利要求16所述的客户端,其特征在于,所述m个优先级值中的第n个值用于指示所述m个覆盖层中的第n个覆盖层的优先级,n为小于或者等于m的正整数。

18.一种服务器,其特征在于,包括:

处理模块,用于确定一个或多个覆盖层的优先级;

发送模块,用于发送媒体呈现描述mpd文件,所述mpd文件包括优先级指示信息;其中,所述优先级指示信息用于指示所述一个或多个覆盖层的优先级。

19.根据权利要求18所述的服务器,其特征在于,所述优先级指示信息为所述mpd文件中的所述一个或多个覆盖层的覆盖层描述字的属性信息。

20.根据权利要求19所述的服务器,其特征在于,所述覆盖层描述字的属性信息还包括所述一个或多个覆盖层的标识。

21.根据权利要求18-20任意一项所述的服务器,其特征在于,所述优先级指示信息包括一个优先级值,所述一个优先级值用于指示所述一个或多个覆盖层的优先级。

22.根据权利要求18-20任意一项所述的服务器,其特征在于,所述一个或多个覆盖层为m个覆盖层,所述优先级指示信息包括m个优先级值,所述m个优先级值用于指示所述m个覆盖层的优先级,m为正整数。

技术总结
本申请提供了传输媒体数据的方法和装置。该方法包括:客户端接收媒体呈现描述MPD文件,MPD文件包括优先级指示信息;其中,优先级指示信息用于指示一个或多个覆盖层的优先级;客户端根据优先级指示信息处理一个或多个覆盖层。本申请能够支持在DASH MPD文件中表示覆盖层优先级,使得客户端可以按覆盖层优先级顺序选择和处理覆盖层。

技术研发人员:范宇群;邸佩云;王业奎
受保护的技术使用者:华为技术有限公司
技术研发日:2018.09.28
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-2300.html

最新回复(0)