一种基于mpeg-dash协议的带有码率切换控制和静态摘要技术的在线视频播控系统的制作方法【专利摘要】本申请公开了一种基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其中,客户端向流媒体服务器请求发送目标视频,流媒体服务器在接收到客户端的请求之后,向客户端发送目标视频的摘要MPD文件、以及目标视频的视频片段MPD文件,客户端从流媒体服务器下载并解析摘要MPD文件,得到目标视频的摘要画面、以及摘要画面在目标视频中的位置,在客户端上显示摘要画面,并由用户选择其中的一个摘要画面,客户端记录选择的结果,客户端从流媒体服务器下载并解析视频片段MPD文件,得到目标视频的视频片段的播放信息,客户端根据播放信息、以及选择的结果,确定与所选摘要画面对应的视频片段,向流媒体服务器请求从该视频片段开始发送并播放目标视频。【专利说明】一种基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统【
技术领域:
】[0001]本发明涉及互联网流媒体领域,更具体地,涉及基于Dash协议的带码率切换控制和静态摘要技术的播控系统。【
背景技术:
】[0002]MPEG-DASH协议标准[0003]目前,市场上主流的媒体传输规范包括微软集团的SmoothStreaming、Adobe集团的HDS、以及苹果集团的HLS等,这些规范都自成一家,没有通用性。MPEG-DASH协议是为了解决不同平台下HTTP协议的通用性而产生的。这一协议在2011年由MPEG组织批准,之后它就成为流媒体领域的一个热门话题,这一协议可以让不同的服务器和客户端之间进行交互,如果能够得到发展,势必会让流媒体领域发生重大变革。MPEG-DASH规范的产生是流媒体视频自适应码率传输不断走向成熟的至关重要的一步。在标准规范完成之后,DASH最重要的问题就是要有支持这一规范的实际产品,现存的一些技术可以为实现这些产品提供支撑,在DASH实现之后,不同平台开发的客户端和服务器之间就可以协同工作。[0004]MPEG-DASH协议是基于HTTP协议实现的,HTTP流有很多优点。首先,因特网基础结构进化了,可以很好的支持HTTP协议。比如,⑶N网络提供局部边缘高速缓存,可以减少数据的长距离传输。另外,HTTP协议对防火墙友好,几乎所有的防火墙配置都支持HTTP的外向连接。HTTP服务器技术很常见,因此为数百万用户提供HTTP流支持很划算。第二,使用HTTP流,客户端可以不用在服务器上维持会话状态。因此,支持多用户除了HTTP的标准应用外不会为服务器增加额外费用,而且CDN可以使用标准HTTP优化技术来管理它。[0005]在MPEG-DASH协议中,媒体内容被捕获和存储在HTTP服务器中,使用HTTP协议进行传输。这些媒体信息在服务器上存在于两个部分:一个是MPD(媒体表现描述,MediaPresentationDescription),描述了媒体文件可用内容的manifest、可提供的选择、URL地址和其它特征;另外一个部分是片段(segment),它是以块(chunk)方式存储的单一或多个文件中的实际媒体比特流,如图1所示。[0006]在播放内容之前,DASH客户端首先得到MPD文件,MPD文件是一个XML文件,其格式如图2所示。MPD可以用HTTP、email、指状存储器、广播或其它方式进行传输。通过解析MPD文件,DASH客户端得到程序事件、媒体信息可用性、媒体类型、解决方法、最大和最小带宽和媒体分量的不同编码选择、可访问性特点和需要的DRM(数字权限管理,digitalrightsmanagement)、媒体内容在网络上的位置和其它媒体特点。有了这些信息,DASH客户端就可以选择合适的编码方式,客户端使用HTTPGET向服务器请求获取片段。在缓存之后可以适应网络的不同吞吐量变化进行播放,客户端继续获取随后的片段,并且监视网络的带宽波动,通过监视和测量结果,客户端通过获取不同方案的片段来保证足够的缓存,从而适应不同的带宽。[0007]MPD包含一个或多个周期。一个周期是指媒体文件时间轴上的一个时间集合。每一个时间集合都有一个起始时间和持续时间,包含一个或多个适应集(adaptationset)。每个adaptationset提供一个或多个媒体分量和它的多种编码选择的信息。例如,一个adaptationset可能包含同一媒体内容不同比特率的视频分量,另一个adaptionset可能包含同一媒体内容不同比特率的音频分量(比如,低质量立体声和高质量环绕声),每一个adaptationset通常包含多个描述。[0008]—个表现(Representation)包含同一媒体分量的在不同编码方式下的片段,与其他表现在比特率、解决方案、通道数或者其他特征方面不同。每一个表现由一个或多个片段组成,片段是时间序列中的媒体流块(chunk)。每个片段有一个URI,它是服务器上可寻址的地址,可以用HTTPGET或者带比特范围的HTTPGET来下载。[0009]为了使用这种数据模型,DASH客户端首先解析MPD的XML文件,客户端根据MPD中的描述性元素来选择它需要使用的描述,描述性元素包括客户端容量和用户的选择。然后客户端建立时间线,开始播放所需要的正确的媒体分量。每个特征的表述包括有关当前片段的信息,这样可以使每个分段都用HTTPURI和比特范围来进行表述。对于实时描述,MPD提供片段的起始时间、结束时间、大概起始时间和片段的不同持续时间。[0010]在DASH协议中,媒体内容可以作为一群片段来获得。一个片段作为DASH客户端HTTPGET或者部分HTTPGET的实体回应,媒体内容以成组的片段被编码和分离。第一个片段是包含初始化DASH客户端解码器所需信息的一个初始化片段,并不包含任何实际的媒体数据。[0011]然后媒体流被分成一个或者多个连贯的媒体片段,每一个片段被分配一个URL、一个索引和明确的或者内在的起始时间和持续时间。[0012]为了能够下载媒体片段,这个规范定义了一种使用片段索引盒来标记片段的方法,这个片段索引盒标记持续时间和字节偏移,从而描述了片段的次片段和流接入点。DASH客户端可以通过索引信息,用部分HTTPGETS来索取次片段。片段的索引信息可以放在那个片段开头的单独的盒子里,或者在片段的众多索引盒子中进行传播。可以使用不同的传播方法,比如分层的、环链或混合法。这个技术可以避免在片段的开头增加一个很大的盒子,从而避免了可能存在的内在(固有)下载延迟。[0013]MPEG-DASH为ISO底层媒体文件格式和MPEG-2传输系统定义容器格式。MPEG-DASH的解码器未知,可以支持复用或者未复用的编码内容。在MPEG-DASH中,每个adaptiveset可以使用一个保护内容的描述符来描述支持的DRM计划。Adaptiveset也可以用复用的内容保护计划,只要客户端识别至少一个,它就可以解码内容。[0014]这个标准定义了五个明确的配置文件,每个都可以寻址一个不同类型的应用程序。每一个配置文件都定义了一系列约束条件,将Mro和片段格式限制到整个标准的子集中。因此,一个DASH客户端的配置文件只需要符合所要求的特征即可,而不需要符合整个标准。一些配置文件被设计成使用可继承内容从而为非标准的解决方案提供折中路径。[0015]一些其他的标准组织或联盟与MPEG合作,在他们的标准中引用MPEG-DASH协议。同时,一些行业正在提供基于MPEG-DASH的解决方案。一些开源的实现方法也在进行中。大家相信,之后两年将会是这个产业应用这个标准的重要时刻,包括媒体和服务提供者、平台提供者、软件供应商、CDN提供者和设备制造商,还有为因特网上建立媒体流之间相互协作系统的重要时刻。[0016]DASH的目标是通过定义一个通用的分发格式来适应因特网上视频数据的急剧增长,在视频流式传输到他们的设备时为终端用户提供最佳的视频体验及动态自适应变化的网络条件。它采用专有自适应流媒体解决方案的所有最佳元素,解决用户流式传输视频时遇到的传统问题。[0017]MP4封装格式[0018]媒体封装格式的实质是为与视频有关的数据提供一个存放的容器。MP4是一种常见的容器格式,它定义了通用媒体文件结构标准(参见参考文献[1],Thomasff.GaryS.GisleBOverviewoftheH.264/AVCVideoCodingStandard2003,为了避免使本发明的描述限于冗繁,将该参考文献通过引用的方式合并于此),理论上讲可以在MP4文件中嵌入任何形式的数据。MP4是由很多个box(盒)组成的,box可以互相嵌套,大的box中嵌套小的box,一级一级地存放媒体数据。[0019]MP4的box具有相同的结构,每个box都包含头部和数据域(数据字段)两部分,在头部中存放着整个box的类型和长度信息,box的类型表明了在当前box中会存放音视频的哪些信息,box的长度指明了当前box在文件中占用的字节数,当box的长度为O时代表这是文件的最后一个box,当长度为I时说明这个box真正的大小需要在另外的地方得到;数据域存放box的实际数据,具体存放的数据由box的类型决定。[0020]MP4文件的box可以由数据组成,也可以嵌套别的子box,结构非常灵活。MP4容器格式几乎可以描述所有的媒体结构,在苹果的IOS平台下只支持MP4格式的文件,在Android平台下对MP4的支持也非常成熟。在MP4文件中,媒体描述和媒体数据并不是放在一起的,而是分开的两个部分,在组织MP4结构的时候,可以通过索引来引用其他文件。[0021]码率切换算法[0022]DASH中同一视频内容可以有多种码率,同一码率的视频内容是由若干个内容上不重复的片段文件组成,因此实际播放时客户端可以根据网络状况动态选择不同码率的片段文件。[0023]研究码率切换的目的就是为观众提供播放质量保障:[0024]1.尽量减少时延、提高平均码率和避免播放停顿;[0025]2.保证码率切换的平滑性,避免出现码率切换幅度过大的问题。[0026]综合而言,影响码率切换的因素主要有网络状况和现有的缓冲时间长度。[0027]Android平台视频的无缝播放(SeamlessPlayback)[0028]现阶段Android平台并没有一个主流的无缝播放的解决方案,无缝播放的意义,就是一个视频片段到另一个视频片段的播放切换可以完美衔接,没有黑屏,卡顿、跳帧等现象。[0029]现在,MPEG-DASH在PC平台上的实现正处于测试阶段,有各大公司都在致力于实现MPEG-DASH协议,DASH的消息交互主要发生在客户端和存放好了准备好的媒体内容的DASH服务器之间。DASH客户端和服务器间的简单交互流程如下所述。首先在建立TCP连接后,DASH客户端向服务器发送HTTPGETMPD请求,请求消息中包含了MPD文件的URL信息。服务器收到Mro请求后向客户端发送TCP数据包形式的Mro文件内容。随后客户端解析Mro文件中的媒体特征信息,包括获得媒体持续时间、比特率、URL地址等等。客户端向服务器请求媒体片段1,请求消息中包含所请求的媒体片段的比特率、URL等参数。服务器收到媒体片段请求后将对应的媒体片段打包发送至客户端。客户端接收到开始播放媒体内容,同时客户端还启动自适应机制,在估计可用网络带宽后调整下一请求的媒体片段2的比特率,向服务器请求下一个媒体片段2。服务器给客户端发送相应比特率的媒体片段数据。当客户端暂停或停止播放时,客户端和服务器间停止交互消息,底层TCP连接断开,整个DASH过程就完成了。[0030]摘要封装方法[0031]视频摘要用来从视频数据中快速查找用户感兴趣的内容,对于在线视频播放来说有着很大的应用意义。现有的摘要封装方法是动态摘要封装方法,动态摘要的实质是一段动态视频,根据需要的不同可以是视频剪辑、缩略视频等。视频剪辑的主要目的是将用户最感兴趣的部分截取出来;缩略视频是通过一些视频片段序列的组合或者简单的视频帧的组合使用户对视频的内容有大致的了解。视频剪辑有很强的主观性,所以一般的视频摘要都是以缩略视频的方式进行动态摘要的显示。缩略图摘要的实现方式是通过抽样的方法提取整个视频中的关键信息,组成一个缩短的视频,这种方式可以让用户快速浏览整个视频,但是可能会有?目息的损失。[0032]现有的具有视频摘要的多媒体系统是基于动态摘要的方法实现的,因此摘要box(摘要盒)的设计是为动态摘要服务的,原有系统的视频摘要信息按图12所示方式存储,摘要box的类型是一种自定义的类型“kfra”,这个box由两个子box组成,第一个是“kfhd”,这个box用来存放“kfra”的基本信息,包括版本、标志、创建时间、修改时间、保留字节以及宽高等字段,其中版本(version)占3个字节,标志(flag)占I个字节,其余每个字段分别占用4个字节,整个“kfhd”占用32字节;另外一个是“kftk”,这个box中存放的是关键帧数目、以及每一个关键帧所在track(轨道)的音视频索引。entrytable(条目表)的每个表项会存储一个24字节的AVIndexEntry结构体,这个结构体包含的信息是视频数据在文件中的偏移量,entrytable的总大小为sizeof(AVIndexEntry)*关键帧数目。[0033]动态摘要的封装是将关键帧信息写入MP4文件,具体操作过程是:根据一定的摘要提取算法得到关键帧的数目和每一个关键帧在视频文件中的偏移量;打开MP4文件,将操作指针移到文件的末尾,在文件的末尾写入box的类型、box中所包含的数据,然后计算box的总大小并写入size(大小)字段。[0034]解封装过程是在服务器端实现的,首先寻找类型为“kfra”的box,如果没有找到,则表明这个视频文件不含关键帧信息;如果找到了,从“kfhd”中解析得到视频的宽高信息,保存下来,再从“kftk”中得到关键帧的数目,并从MP4文件中提取出相应的音视频数据,打包之后发送到客户端,客户端通过相应的视频模块进行解码播放。[0035]动态摘要的本质是一个缩短的视频,因此,客户端在播放的时候顺次播放摘要视频的每一帧图像,用户无法与之进行交互。此外,动态摘要中封装的是未经解码的视频裸数据,因此,只有支持MP4格式的解码器才可以解析动态摘要文件,灵活性低。[0036]基于缓冲等级的码率切换算法[0037]基于缓冲等级的码率切换算法是ChristopherMiiller、StefanLederer和ChristianTimmerer提出的,算法考虑到缓冲区的时长这一因素,如果缓冲时间比较充足,即使网络速率不是很高,也可以选择相对比较大的码率片段文件下载。虽然此时会导致下载文件片的时长超过其播放时长,但是由于缓冲区的时间足够,不易造成播放停顿现象。该算法中的网络带宽也是以上一个文件片的下载速率为参考值。[0038]当缓冲区时间比较小时,选择一个比较小的码率,缓冲区时间在一定范围内时不做码流切换。具体算法如公式所示:【权利要求】1.一种基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其包括流媒体服务器、以及客户端,所述流媒体服务器和所述客户端以可通信方式连接,所述客户端用来向所述流媒体服务器请求发送目标视频,并在所述客户端本地播放所述目标视频,其中,所述客户端包括摘要MPD下载及解析模块、摘要显示和选择模块、视频片段MPD下载及解析模块、以及视频播放模块,所述流媒体服务器包括MPD发送模块,所述MPD发送模块用来在所述流媒体服务器接收到所述客户端的所述请求之后,向所述客户端发送所述目标视频的摘要MPD文件、以及所述目标视频的视频片段MPD文件,所述摘要MPD下载及解析模块用来从所述流媒体服务器下载并解析所述摘要MPD文件,得到所述目标视频的摘要画面、以及所述摘要画面在所述目标视频中的位置,所述摘要显示和选择模块用来在所述客户端上显示所述摘要画面,并由用户选择其中的一个摘要画面,并向所述视频播放模块通知所述选择的结果,所述视频片段MPD下载及解析模块用来从所述流媒体服务器下载并解析所述视频片段MPD文件,得到所述目标视频的视频片段的播放信息,并将所述播放信息传送到所述视频播放模块,所述视频播放模块用来根据所述播放信息、以及所述选择的结果,确定与所选摘要画面对应的视频片段,向所述流媒体服务器请求从该视频片段开始发送并播放所述目标视频。2.根据权利要求1所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其中,所述摘要MPD下载及解析模块还用来:在从所述流媒体服务器下载所述摘要MPD文件之后,将所述摘要MPD文件存储在客户端本地之后进行解析,得到摘要画面的数目、每个摘要画面对应的网址、以及每个摘要画面在原视频文件中的位置,所述位置是时间位置或字节位置。3.根据权利要求2所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其中,所述摘要显示和选择模块还用来:根据所述摘要MPD下载及解析模块得到的每个摘要画面对应的网址,将每个摘要画面显示在所述客户端的显示器上,所述客户端的用户通过点击所显示的某个摘要画面而选择该摘要画面。4.根据权利要求3所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其中,所述视频片段MPD下载及解析模块还用来:从所述流媒体服务器下载所述视频片段MPD文件之后,将所述视频片段MPD文件存储在客户端本地之后进行解析,得到所述视频片段的播放信息,所述播放信息包括视频片段的视频格式、编解码器类型、宽度、高度、帧率、网址、视频片段在原视频文件中的位置,所述位置是时间位置或字节位置。5.根据权利要求4所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其中,所述视频播放模块还用来:根据所述播放信息中的视频片段在原视频文件中的位置,找到距离所选摘要画面最近的视频片段,并向所述流媒体服务器请求从该视频片段开始发送并播放所述目标视频。6.根据权利要求5所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控系统,其中,所述流媒体服务器还用来:在向所述客户端发送视频片段时,通过以下公式确定要发送的视频片段的码率:7.一种基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控方法,其用于包括流媒体服务器、以及客户端的在线视频播控系统,所述流媒体服务器和所述客户端以可通信方式连接,所述在线视频播控方法包括:步骤I,所述客户端向所述流媒体服务器请求发送目标视频;步骤2,所述流媒体服务器在接收到所述客户端的所述请求之后,向所述客户端发送所述目标视频的摘要MPD文件、以及所述目标视频的视频片段MPD文件;步骤3,所述客户端从所述流媒体服务器下载并解析所述摘要MPD文件,得到所述目标视频的摘要画面、以及所述摘要画面在所述目标视频中的位置;步骤4,在所述客户端上显示所述摘要画面,并由用户选择其中的一个摘要画面,所述客户端记录所述选择的结果;步骤5,所述客户端从所述流媒体服务器下载并解析所述视频片段MPD文件,得到所述目标视频的视频片段的播放信息;以及步骤6,所述客户端根据所述播放信息、以及所述选择的结果,确定与所选摘要画面对应的视频片段,向所述流媒体服务器请求从该视频片段开始发送并播放所述目标视频。8.根据权利要求7所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控方法,其中,所述客户端在从所述流媒体服务器下载所述摘要MPD文件之后,将所述摘要MPD文件存储在客户端本地之后进行解析,得到摘要画面的数目、每个摘要画面对应的网址、以及每个摘要画面在原视频文件中的位置,所述位置是时间位置或字节位置。9.根据权利要求8所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控方法,其中,所述客户端根据所得到的每个摘要画面对应的网址,向用户显示每个摘要画面,所述用户通过点击所显示的某个摘要画面而选择该摘要画面。10.根据权利要求9所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控方法,其中,所述客户端从所述流媒体服务器下载所述视频片段MPD文件之后,将所述视频片段MPD文件存储在客户端本地之后进行解析,得到所述视频片段的播放信息,所述播放信息包括视频片段的视频格式、编解码器类型、宽度、高度、帧率、网址、视频片段在原视频文件中的位置,所述位置是时间位置或字节位置。11.根据权利要求10所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控方法,其中,所述客户端根据所述播放信息中的视频片段在原视频文件中的位置,找到距离所选摘要画面最近的视频片段,并向所述流媒体服务器请求从该视频片段开始发送并播放所述目标视频。12.根据权利要求11所述的基于MPEG-DASH协议的带有码率切换控制和静态摘要技术的在线视频播控方法,其中,所述流媒体服务器在向所述客户端发送视频片段时,通过以下公式确定要发送的视频片段的码率:【文档编号】H04N21/643GK103974147SQ201410083234【公开日】2014年8月6日申请日期:2014年3月7日优先权日:2014年3月7日【发明者】庄伯金,谢伟男,苏菲,赵衍运,赵志诚申请人:北京邮电大学