网络视频播放的方法和装置制造方法

文档序号:7802986阅读:203来源:国知局
网络视频播放的方法和装置制造方法
【专利摘要】本发明提供了一种网络视频播放的方法和装置,所述方法包括:接收视频的MPD文件,获取用户请求的接入时间点;根据MPD文件确定与接入时间点对应的媒体分片;获取该媒体分片的分片索引,分片索引包含该媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息;根据该位置信息,在该可独立解码视频帧和该非独立解码视频帧中确定与接入时间点最接近的视频帧;如果最接近的视频帧为非独立解码视频帧,获取最接近的视频帧引用的可独立解码视频帧;根据该引用的可独立解码视频帧,从最接近的视频帧开始解码并播放视频。使用本发明可提高网络视频播放的接入精度。
【专利说明】网络视频播放的方法和装置
【技术领域】
[0001]本发明涉及通信网络【技术领域】,尤其涉及一种网络视频播放的方法和装置。
【背景技术】
[0002]感知编码是一种新的编码技术,基于背景建模的编码技术是感知编码的典型代表,其主要应用于视频监控、电话会议、新闻播报等背景基本不变的场景。基于背景建模的编码技术除了通过背景建模的方法有效地减少背景中的场景冗余,还采用了新的图片组(Group of pictures, GOP)结构,因此能在通用编码技术的基础上大幅提高编码压缩率。
[0003]GOP是码流中的基本结构,也是视频序列能完整解码的最小单元,传统的GOP包含一个可独立解码视频帧和多个非独立解码视频帧,GOP中包含的视频帧个数称为该GOP的长度,为了提高压缩率,可以适当的增加GOP的长度,但是GOP的长度太长也会带来误差扩散效应变差的缺陷;基于背景建模的编码技术改进了 GOP结构,改进的GOP中可独立解码视频帧为背景帧(G帧),非独立解码视频帧包含背景更新帧(S帧)、前向预测帧(P帧)以及双向预测帧(B帧)。其中S帧只能参考前一 G帧,P帧和B帧可以引用之前的G帧或附近的S帧。这种改进的GOP结构可以抑制误差扩散效应,从而使得基于背景建模的编码技术可以采用很长的GOP来进一步提高编码效率。
[0004]基于超文本传输协议(HyperText Transfer Protocol, HTTP)的动态自适应流媒体(Dynamic Adaptive Streaming over HTTP, DASH)技术米用 HTTP 的方式向用户传送媒体内容,目前已成为网络视频行业发展的趋势,其关键是将服务器上的媒体内容顺序地切割成媒体分片(segment),每个媒体分片的时间长度相同,一般为2?10秒,一个媒体分片对应于一个HTTP网络地址,以便客户端通过该地址获取该媒体分片。服务器提供媒体展示描述(Media Presentation Description, MPD)文件,用于记录这些媒体分片的HTTP获取方式以及媒体分片的播放时间段信息。媒体分片可以被继续划分为子分片(subsegment),子分片又由一个个视频巾贞组成。DASH中定义了分片索引(segment index, sidx)用以指示媒体分片中各个子分片在媒体分片中的起始位置,sidx中还包含各个子分片的播放时长、各个子分片中第一个流接入点(Stream Access Point, SAP)的位置信息。
[0005]现有DASH的接入流程是:终端首先获取MPD文件,根据用户输入的接入时间点以及该MPD文件,确定该接入时间点对应的分片,根据该分片的分片索引sidx确定接入时间点对应的子分片以及该子分片的第一个SAP位置,并从第一个SAP对应的视频帧开始解码播放。
[0006]当基于背景建模编码的码流采用DASH进行传输时,因为GOP很长,且当前一个GOP只定义了一个SAP、即定义GOP中的可独立解码帧为SAP,因此用户输入的接入时间与实际接入的SAP距离可能很长,导致接入精度差,影响用户的接入体验。

【发明内容】

[0007]本发明的实施例提供的网络视频播放的方法和装置,能够解决现有技术中采用DASH方式传输基于背景建模编码的视频流时,接入精度差的问题。
[0008]第一方面,本发明实施例提供了一种网络视频播放的终端,包括:收发单元,处理单元和播放单元;
[0009]所述收发单元,用于接收视频的媒体展示描述Mro文件,并获取用户请求的接入时间点;
[0010]所述处理单元,用于根据所述MPD文件确定与所述接入时间点对应的媒体分片;
[0011]所述收发单元,还用于根据所述处理单元确定的所述媒体分片获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息;
[0012]所述处理单元,还用于根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧,以及确定所述最接近的视频帧为非独立解码视频帧;
[0013]所述收发单元,还用于在所述处理单元确定所述最接近的视频帧为非独立解码视频帧后,获取所述最接近的视频帧引用的可独立解码视频帧;
[0014]所述播放单元,根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0015]在第一方面的第一种可能的实现方式中,所述处理单元,还用于确定所述最接近的视频帧为可独立解码视频帧;所述播放单元,还用于在所述处理单元确定所述最接近的视频帧为可独立解码视频帧后,从所述最接近的视频帧开始解码并播放视频。
[0016]结合第一方面或第一方面的第一可能的实现方式,在第二种可能的实现方式中,所述分片索引中包含对所述媒体分片的子分片的描述;所述收发单元获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息具体为:获取所述媒体分片的分片索引,在所述对所述媒体分片的子分片的描述中包含所述子分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
[0017]结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述MPD文件中或所述分片索引中还包含所述非独立解码视频帧所引用的可独立解码视频帧的帧标识;所述收发单元获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧的帧标识获取所述最接近的视频帧弓I用的可独立解码视频帧。
[0018]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述可独立解码视频帧的帧标识包括所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息;所述收发单元获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息获取所述最接近的视频帧引用的可独立解码视频帧。
[0019]第二方面,本发明实施例提供了一种网络视频播放的服务器,包括:
[0020]接收单元,用于接收终端在确定与接入时间点对应的媒体分片后发送的获取所述媒体分片的分片索引的请求;
[0021]所述发送单元,用于根据所述请求向所述终端返回所述分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的
位置信息。
[0022]第三方面,本发明实施例提供了一种网络视频播放的方法,包括:接收视频的媒体展示描述Mro文件,并获取用户请求的接入时间点;根据所述Mro文件确定与所述接入时间点对应的媒体分片;获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息;根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧;确定所述最接近的视频帧为非独立解码视频帧,获取所述最接近的视频帧引用的可独立解码视频帧;根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0023]在第三方面的第一种可能的实现方式中,所述方法还包括:确定所述最接近的视频帧为可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0024]结合第三方面或第三方面的第一可能的实现方式,在第二种可能的实现方式中,所述分片索引中包含对所述媒体分片的子分片的描述;所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息具体为:在所述对所述媒体分片的子分片的描述中包含所述子分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
[0025]结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述MPD文件中或所述分片索引中还包括所述非独立解码视频帧所引用的可独立解码视频帧的帧标识;所述获取所述最近接的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧的帧标识获取所述最近接的视频帧引用的可独立解码视频帧。
[0026]结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述可独立解码视频帧的帧标识包括所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息。
[0027]由上述本发明的实施例提供的技术方案可以看出,本方案通过在分片索引包含媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息,从而在所述可独立解码视频帧和所述非独立解码视频帧确定与接入时间点最接近的视频帧,如果该最接近的视频帧为非独立解码视频帧,获取该最接近的视频帧引用的可独立解码视频帧,根据该引用的可独立解码视频帧,从最接近的视频帧开始解码并播放视频,从而提高终端接入的精度。
【专利附图】

【附图说明】
[0028]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0029]图1为本发明实施例提供的网络视频播放方法流程图;
[0030]图2为本发明另一实施例提供的网络视频播放方法流程图;[0031]图3为本发明图2对应实施例中当不封装单独分片时的媒体分片结构示意图;
[0032]图4为本发明图2对应实施例中当封装单独分片时的分片结构示意图;
[0033]图5为本发明图2对应实施例中分片索引的一个示例;
[0034]图6为本发明再一实施例提供的网络视频播放方法流程图;
[0035]图7为本发明图6对应实施例中分片索引的一个不例;
[0036]图8为本发明图6对应实施例中MPD文件的一个示例;
[0037]图9为本发明实施例提供的网络视频播放的终端结构图;
[0038]图10为本发明实施例提供的网络视频播放的服务器结构图;
[0039]图11为本发明实施例提供的基于计算机系统的网络视频播放终端结构图。
【具体实施方式】
[0040]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明实施例提供了一种网络视频播放的方法,该方法中,终端从服务器获取MPD文件,并根据Mro文件获取媒体分片后播放视频。终端执行的方法请参照图1,具体包括:
[0042]步骤101:接收视频的媒体展示描述MPD文件,并获取用户请求的接入时间点。
[0043]步骤102:根据所述MPD文件确定与所述接入时间点对应的媒体分片。
[0044]步骤103:获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
[0045]其中,该可独立解码视频帧为背景帧,该非独立解码视频帧为背景更新帧或前向预测帧。
[0046]其中,所述分片索引中包含对所述媒体分片的子分片的描述,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息具体可以为:在所述对所述媒体分片的子分片的描述中包含所述子分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
[0047]步骤104:根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧。
[0048]步骤105:确定所述最接近的视频帧为非独立解码视频帧,获取所述最接近的视频帧引用的可独立解码视频帧。
[0049]步骤106:根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0050]可选的,该方法还可以包括:确定所述最接近的视频帧为可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0051]可选的,当步骤103中的分片索引还包含所述非独立解码视频帧所引用的可独立解码视频帧的帧标识时,步骤105中获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述分片索引包含的所述可独立解码视频帧的帧标识获取所述最接近的视频帧引用的可独立解码视频帧。[0052]可选的,当步骤101中的MPD文件包含所述非独立解码视频帧所引用的可独立解码视频帧的帧标识时,步骤105中获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述MPD文件包含的所述可独立解码视频帧的帧标识获取所述最接近的视频帧引用的可独立解码视频帧。
[0053]其中,所述可独立解码视频帧的帧标识包括所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息;可选的,所述可独立解码视频帧所在分片为仅包括可独立解码视频帧的单独分片,所述MPD文件中包含所述单独分片的获取地址;所述根据MPD文件确定与所述接入时间点对应的媒体分片之前,所述方法还包括:根据所述单独分片的获取地址获取所述单独分片。
[0054]可选的,步骤103获取到的分片索引中还包含所述可独立解码视频帧和所述非独立解码视频帧的类型,所述确定所述最接近的视频帧为可独立解码视频帧或者为非独立解码视频帧具体为:通过所述分片索引包含的可独立解码视频帧和所述非独立解码视频帧类型确定所述最接近的视频帧为可独立解码视频帧或者为非独立解码视频帧。
[0055]本发明实施例提供了网络视频播放的方法,该方法中,基于背景建模编码的视频流采用DASH的方式进行传输,SAP对应的视频帧中非独立解码视频帧所引用的可独立解码视频帧的帧标识可以包含在MPD文件中或分片索引中。[0056]当SAP对应的视频帧中非独立解码视频帧所引用的可独立解码视频帧的帧标识包含在分片索引时,终端接入到视频流的详细流程请参照图2,具体包括:
[0057]步骤201:接收视频的媒体展示描述MH)文件,并获取用户请求的接入时间点。
[0058]具体的,该步骤可以是终端根据用户选择的视频,向服务器请求该视频的MPD文件,并接收服务器返回的MPD文件,以及获取用户在播放器界面中直接输入或者通过拖动进度条选择的开始观看时间、即接入时间点。
[0059]具体的,该步骤还可以是终端根据用户选择对上次未看完的视频进行续播,获取到服务器或者本地保存的续播时间、即接入时间点,向服务器请求该视频的MPD文件,并接收服务器返回的MPD文件,或者直接从本地缓存中获取已经下载过的该视频的MPD文件。
[0060]其中,Mro文件记录了该视频中各媒体分片的获取地址以及播放时长,该获取地址由视频的基地址和分片标识组成,其中,分片标识用于指示该媒体分片与基地址的相对存储地址,终端可以根据该获取地址从服务器获取该媒体分片,例如,视频的基地址(BaseURL)为:http://www.example.com/server/Segments,媒体分片的分片标识为 segl.m4s,则该媒体分片的获取地址为:http://www.example, com/server/Segments/segl.m4s0
[0061]步骤202:根据所述MPD文件确定与所述接入时间点对应的媒体分片。
[0062]具体的,该步骤可以是根据MPD文件中记录的各媒体分片的播放时长计算出该接入时间点对应的媒体分片的获取地址,例如,MPD中记录的每个媒体分片的播放时长均为2秒,包含的分片列表的分片标识分别为seg0.m4s、segl.m4s、seg2.m4s、seg3.m4s、seg4.m4s,seg5.m4s、…,接入时间点为7秒处,则接入时间点对应媒体分片的分片标识为seg3.m4s。
[0063]步骤203:获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中SAP的位置信息,所述SAP对应的视频帧为所述媒体分片中可独立解码视频帧或引用可独立解码视频帧的非独立解码视频帧,所述分片索引还包含所述SAP对应的视频帧中非独立解码视频帧所弓I用的可独立解码视频帧的帧标识。
[0064]其中,分片索引在服务器可以有以下两种存储方式:方式一、分片索引可以位于单独的索引分片中,并且在Mro对该分片的描述信息中包含该索引分片的分片标识;方式二、分片索引可以位于对应媒体分片的头部。
[0065]获取媒体分片的分片索引具体为:首先,根据查找MPD文件的对该媒体分片的描述信息中是否包含索引分片的分片标识来确定分片索引的存储方式,如果描述信息中包含索引分片的分片标识,则确定为第一种存储方式,根据分片标识获取到所述索引分片,并从所述索引分片中获取到该分片索引,否则确定为第二种存储方式,获取该媒体分片后从该媒体分片的头部解析出分片索引。例如,当对媒体分片的描述信息是〈SegmentURL media=’ segl.m4s,index = ‘segl_index.m4s,/>,则确定出存在索引分片,且索引分片的分片标识为:segl_index.m4s ;再例如,对媒体分片的描述信息是〈SegmentURL media = ' segl.m4s’ />,则确定分片索引在媒体分片的头部。该步骤的实现具体过程可以按照现有技术,此处不再赘述。
[0066]其中,分片索引中还包含对所述媒体分片的子分片的描述,则所述分片索引包含所述媒体分片中SAP的位置信息可以为:在对媒体分片的子分片的描述中包含该子分片中每个SAP的位置信息。例如,在对媒体分片的子分片的描述中包含该子分片中每个SAP相对子分片起始位置的时间或位置偏移量。
[0067]其中,在本实施例中,所述SAP对应的视频帧中可独立解码视频帧为背景帧(G帧),所述SAP对应的视频帧中非独立解码视频帧为前向预测帧(P帧)或者背景更新帧(S帧),所述P帧或S帧引用之前的G帧,获取到该引用的G帧后即可对所述P帧或S帧解码。
[0068]可选的,在分片索引中还包括所述SAP对应的视频帧的类型,用于指示SAP对应的视频帧为可独立解码视频帧、还是非独立解码视频帧。
[0069]服务器在进行媒体分片的封装时,将视频的可独立解码视频帧和非独立解码视频帧依次封装在媒体分片中,并在该媒体分片的分片索引中包含该媒体分片中SAP的位置信息,即媒体分片中可独立解码视频帧和弓I用可独立解码视频帧的非独立解码视频帧的位置信息,可选的,还可以将视频的可独立解码视频帧封装在单独分片中,并且Mro文件中包含该单独分片的获取地址;例如,MPD文件对初始化信息的描述中包含该单独分片的分片标识,通过视频的基地址和该分片标识组成该单独分片的获取地址;终端需要在根据MPD文件确定与接入时间点对应的媒体分片之前根据该获取地址将该单独分片获取到本地。
[0070]图3给出了当不封装单独分片时的媒体分片结构示意图,其中通过阴影标记的帧为媒体分片中SAP对应的视频帧,例如G帧、P帧、S帧。箭头表示SAP对应的视频帧中非独立解码视频帧弓I用媒体分片中可独立解码视频帧的引用关系,例如P帧和S帧引用G帧。采用该封装方式时,分片索引中包含的所述可独立解码视频帧的帧标识具体包括:所述可独立解码视频帧所在媒体分片的分片标识、以及所述可独立解码视频帧在该媒体分片中的位置信息,位置信息可以是帧序号,还可以是存储偏移地址。
[0071]图4给出了当封装单独分片时的分片结构示意图,其中通过阴影标记的帧为媒体分片中SAP对应的视频帧,例如G帧、P帧、S帧。箭头表示SAP对应的视频帧中非独立解码视频帧引用独立分片中可独立解码视频帧的引用关系,例如P帧和S帧引用G帧。采用该封装方式时,分片索引中包含的所述可独立解码视频帧的帧标识具体包括:所述可独立解码视频帧所在单独分片的分片标识、以及所述可独立解码视频帧在该单独分片中的位置信息,位置信息可以是帧序号,还可以是存储偏移地址。
[0072]图5给出了图3和图4对应的两个例子中,分片索引的一个示例:分片索引包含对每个子分片的描述,其中,在对任一子分片的描述中包含该子分片中每个SAP的描述,在对任一 SAP 的描述中包含了四个参数:SAP_type, SAP_delta_time, SegmentURL 和 Frame_Position,其中,参数SAP_type用于表示该SAP对应的视频巾贞的类型,参数SAP_delta_time用于表示该SAP相对于该子分片起始位置的时间偏移量,当参数SAP_type指示该SAP对应的视频巾贞为非独立解码视频巾贞时,参数SegmentURL和Frame_Position才具有有效值,参数SegmentURL用于表示该SAP对应的视频巾贞引用的G巾贞所在分片的分片标识,参数Frame_Position用于表示该G帧在该分片中的帧序号或存储偏移地址。在图3对应的例子中,G帧所在分片指媒体分片,在图4对应的例子中,G帧所在分片指单独分片。
[0073]在图3对应的例子中,不需要更改服务器现有的分片封装方式,因此对现有系统的改动成本最低;在图4对应的例子中,通过服务器将可独立解码视频帧封装在单独分片中,并且终端在根据MPD文件确定与接入时间点对应的媒体分片之前将单独分片下载到本地,可以避免第一个例子中当SAP对应的视频帧中P帧或S帧和它引用的G帧不在同一个媒体分片时,需要实时获取该G帧所在媒体分片再解析导致访问速度慢、或者事先下载所有媒体分片开销大的问题,因此在空间开销最小的情况下加快了获取G帧的速度,但是因为要另外封装单独分片和修改MPD文件,和第一个例子相比对现有系统的改动成本更大。
[0074]步骤204:根据所述SAP的位置信息,在所述媒体分片中确定与所述接入时间点最接近的SAP,所述最接近的SAP对应的视频帧为第一视频帧。
[0075]具体的,该步骤包括:首先,根据分片索引中包含的各个子分片的播放时长确定包含该接入时间点的子分片,其次,获取分片索引中包含的该子分片中各个SAP相对子分片起始位置的时间偏移量,计算该子分片中各个SAP的实际播放时间,从而确定接入时间点与该子分片中哪个SAP最近。
[0076]例如,在步骤202中根据接入时间点为第7秒,确定媒体分片为Seg3.m4S后,在步骤203中获取到seg3.m4s的分片索引,该分片索引描述了该媒体分片包含4个子分片sub_seg0、sub_segl、sub_seg2、sub_seg3,它们的播放时长分别为 0.5 秒、0.6 秒、0.4 秒、0.5 秒,从而确定该接入时间点位于子分片sub_segl中,其中sub_segl包含三个SAP:SAP0, SAPl和SAP2,它们的时间偏移量值分别为0.1,0.2和0.4,从而计算出SAPO、SAPl和SAP2的实际播放时间分别为第6.6秒、6.7秒、6.9秒,并确定SAP2距离接入时间点,即第7秒最近。
[0077]当然,以上确定与接入时间点最接近的SAP的方法只是一种可选方式,例如,还可以是获取所述分片索引中包含的各个子分片的播放时长和子分片中每个SAP相对子分片起始位置的时间偏移量后,计算所有SAP的实际播放时间,在所有SAP中确定与接入时间点最近的SAP。而且,客户端可以根据自己的策略,只在接入时间点之前或者之后的SAP中选择距离最近的SAP,这里不再赘述。
[0078]步骤205:判断所述第一视频帧是否为可独立解码视频帧,如果判断结果为非独立解码视频帧,则执行步骤206,否则判断结果为可独立解码视频帧,则执行步骤208,从所述第一视频帧开始解码并播放视频。
[0079]其中,判断第一视频帧是否为可独立解码视频帧具体为:根据分片索引中包含的SAP对应的视频帧的类型判断所述第一视频帧是否为可独立解码视频帧。例如,根据步骤203的例子中的SAP_type参数值判断。
[0080]步骤206:根据分片索引中包含的所述可独立解码视频帧的帧标识获取所述第一视频帧引用的可独立解码视频帧。
[0081]在步骤203提到的图3对应的例子中,所述可独立解码视频帧的帧标识是可独立解码视频帧所在媒体分片的分片标识、以及可独立解码视频帧在所述媒体分片中的位置信息,则该步骤具体为?.从MPD中获取视频的基地址,将所述媒体分片的分片标识和视频的基地址组成媒体分片的获取地址后,从服务器获取该媒体分片,然后根据所述位置信息从所述媒体分片中获取第一视频帧引用的可独立解码视频帧。
[0082]例如,所述可独立解码视频帧的帧标识包含的是分片标识和帧序号,其中分片标识的值是testOl.m4s,帧序号的值是3,则获取该媒体分片后,根据子分片头部包含的每个帧的偏移地址信息,从该媒体分片中解析得到第3视频帧;再例如,所述可独立解码视频帧的帧标识包含的是分片标识和存储偏移地址,其中分片标识的值是testOl.m4s,存储偏移地址的值是0x10,则获取该媒体分片后,根据子分片头部包含的每个帧的偏移地址信息,查询得到该视频帧下一帧的偏移地址信息、即该视频帧的结束地址信息后解析获得该视频帧。可选的,该步骤中如果第一视频帧和其引用的G帧在同一个媒体分片中,并且该媒体分片已经获取过,则可以直接从本地获取该媒体分片。[0083]在步骤203提到的图4对应的例子中,所述可独立解码视频帧的帧标识包含的是可独立解码视频帧所在单独分片中的分片标识、以及可独立解码视频帧在所述单独分片中的位置信息,则该步骤具体为:从本地获取到该分片标识对应的独立分片,然后根据所述位置信息从独立分片中获取第一视频帧引用的可独立解码视频帧。和上一个例子对应步骤的区别仅仅在于,该步骤的实现是从本地获取与分片标识对应的单独分片。
[0084]步骤207:根据所述第一视频帧引用的可独立解码视频帧,从所述第一视频帧开始解码并播放视频。
[0085]具体的,该步骤是根据MPD文件从服务器依次获取接入时间点对应的媒体分片以及之后的媒体分片,对第一视频帧引用的可独立解码视频帧解码,从而可以对第一视频帧及随后的视频帧进行解码,从第一视频帧开始播放视频。
[0086]在该实施例中,通过扩展SAP的定义增加SAP的密度(既包含G帧,还包含引用G帧的S帧和P帧),并在媒体分片的分片索引中包含该媒体分片中所有SAP的位置信息、以及该SAP对应的视频帧中非独立解码视频帧所引用G帧的帧标识,使得终端根据接入时间点和分片索引能更精确的确定与接入时间点最接近的SAP,当该最接近的SAP对应视频帧的类型为可独立解码视频帧时、可以直接从该最接近的SAP对应视频帧开始解码和播放,当该最接近的SAP对应视频帧的类型为非独立解码视频帧时,可以通过分片索引包含的所述帧标识找到该最接近的SAP对应视频帧引用的G帧,并根据该G帧对最接近的SAP对应视频帧解码后从该最接近的SAP对应视频帧开始播放,从而提高了终端接入的精度。
[0087]当SAP对应的视频帧中非独立解码视频帧所引用的可独立解码视频帧的帧标识包含在MPD文件时,终端接入到视频流的详细流程请参照图6,具体包括:
[0088]步骤601-步骤602:参考图2对应实施例的步骤201-202。
[0089]步骤603:获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中SAP的位置信息,所述SAP对应的视频帧为所述媒体分片中可独立解码视频帧或引用可独立解码视频帧的非独立解码视频帧。
[0090]该步骤的实现参考图2对应实施例的步骤203,区别在于本实施例中分片索引不包含所述SAP对应的视频帧中非独立解码视频帧所引用的可独立解码视频帧的帧标识。
[0091]图7给出了分片索引的一个示例:分片索引包含对每个子分片的描述,其中,在对任一子分片的描述中包含该子分片中每个SAP的描述,在对任一 SAP的描述中包含了两个参数:SAP_type, SAP_delta_time,参数SAP_type用于表示该SAP对应的视频巾贞的类型,参数SAP_delta_time用于表示该SAP相对于该子分片起始位置的时间偏移量。
[0092]步骤604:根据所述SAP的位置信息在所述媒体分片中确定与所述接入时间点最接近的SAP,所述最接近的SAP对应的视频帧为第一视频帧。
[0093]该步骤的具体实现参考图2对应实施例的步骤204。
[0094]进一步的,步骤704还可以记录该最接近的SAP在该媒体分片的SAP列表中的序号。
[0095]例如,在计算出最接近的SAP是媒体分片的第二个子分片sub_segl中的第3个SAP后,进一步的,根据该媒体分片中之前的所有子分片的SAP总数为8,从而得到该最接近的SAP在该媒体分片的SAP列表中的序号是11。
[0096]步骤605:判断所述第一视频帧是否为可独立解码视频帧,如果判断结果为非独立解码视频帧,则执行步骤606,否则判断结果为可独立解码视频帧,则执行步骤608,从所述第一视频帧开始解码并播放视频。
[0097]该判断操作的具体实现参考图2对应实施例的步骤205。
[0098]步骤606:步骤601接收到的MPD文件中包含所述SAP对应的视频帧中非独立解码视频帧所引用的可独立解码视频帧的帧标识,根据该帧标识获取所述第一视频帧引用的可独立解码视频帧。
[0099]服务器在进行媒体分片的封装时,将视频的可独立解码视频帧和非独立解码视频帧依次封装在媒体分片中,并在该媒体分片的分片索引中包含该媒体分片中SAP的位置信息,即媒体分片中可独立解码视频帧和弓I用可独立解码视频帧的非独立解码视频帧的位置信息;可选的,还可以将视频的可独立解码视频帧封装在单独分片中,并且MPD文件中包含该单独分片的获取地址,例如,MPD文件对初始化信息的描述中包含该单独分片的分片标识,通过视频的基地址和该分片标识组成该单独分片的获取地址,终端需要在根据MH)文件确定与接入时间点对应的媒体分片之前根据该获取地址将该单独分片获取到本地。
[0100]这两种封装方式下的分片结构示意图参考图3和图4,以及图2对应实施例中步骤203对该图3和图4的详细描述。
[0101]当采用图3所示的封装方式时,MPD文件中包含的所述可独立解码视频帧的帧标识具体包括:所述可独立解码视频帧所在媒体分片的分片标识,以及所述可独立解码视频帧在该媒体分片中的位置信息,位置信息可以是帧序号,还可以是存储偏移地址。
[0102]在采用图4所示的封装方式时,分片索引中包含的所述可独立解码视频帧的帧标识具体包括:所述可独立解码视频帧所在单独分片的分片标识,以及所述可独立解码视频帧在该单独分片中的位置信息,位置信息可以是帧序号,还可以是存储偏移地址。
[0103]图8给出了图3和图4对应的两个例子中,MPD文件的一个示例:MPD文件中包含对每个媒体分片的描述,其中,在对任一媒体分片的描述中包含该媒体分片中SAP所引用的G中贞的描述,在对任一被引用G巾贞的描述中包含了三个参数:SAPCountRange, SegmentURL,Frame_Position,分别用于表示引用该G巾贞的SAP序号范围、该G巾贞所在分片的分片标识、该G帧在分片中的帧序号或存储偏移地址。在图3对应的例子中,G帧所在分片指媒体分片,在图4对应的例子中,G帧所在分片指单独分片。
[0104]例如,参数SAPCountRange=”1,15”,参数SegmentURL = testOl.m4s,参数Frame_Position指巾贞序号,且Frame_Position = 3,其含义是序号范围为1-15的SAP引用该G中贞,且G帧所在分片的分片标识为testOl.m4s,该G帧在该分片中的帧序号为3。
[0105]再例如,参数SAPCountRange =” I, 15”,参数 SegmentURL = testOl.m4s,参数Frame_Position指存储偏移地址,且Frame_Position = 0x10,其含义是序号范围为1-15的SAP引用该G帧,且G帧所在分片的分片标识为testOl.m4s,该G帧在该分片中的存储偏移地址为0x10。
[0106]其中,当获取到MPD中包含的帧标识后,根据该帧标识获取所述第一视频帧引用的可独立解码视频帧的详细描述参见图2对应实施例的步骤206的描述。
[0107]在图3对应的例子中,不需要更改服务器现有的分片封装方式,因此对现有系统的改动成本最低;在图4对应的例子中,通过服务器将可独立解码视频帧存放在单独分片中,并且终端在根据MPD文件确定与接入时间点对应的媒体分片之前将单独分片下载到本地,可以避免当SAP对应的视频帧中P帧或S帧和它引用的G帧不在同一个媒体分片时,需要实时获取该G帧所在媒体分片在解析导致访问速度慢、或者事先下载所有媒体分片开销大的问题,因此在空间开销最小的情况下加快了获取G帧的速度,但是因为要另外封装单独分片和修改MPD文件,和第一个例子相比对现有系统的改动成本更大。
[0108]步骤607:参考图2对应实施例的步骤207。
[0109]在该实施例中,通过扩展SAP的定义增加SAP的密度(既包含G帧,还包含引用G帧的S帧和P帧),并在媒体分片的分片索引中包含该媒体分片中所有SAP的位置信息,以及在MPD中包含该SAP对应的视频帧中非独立解码视频帧所引用G帧的帧标识,使得终端根据接入时间点和分片索引能更精确的确定与接入时间点最接近的SAP,当该最接近的SAP对应视频帧的类型为可独立解码视频帧时、可以直接从该最接近的SAP对应视频帧开始解码和播放,当该最接近的SAP对应视频帧的类型为非独立解码视频帧时,可以通过分片索引包含的帧标识找到该最接近的SAP对应视频帧引用的G帧,并根据该G帧对最接近的SAP对应视频帧解码后从该最接近的SAP对应视频帧开始播放,从而提高了终端接入的精度。
[0110]本发明一个实施例提供了网络视频播放的终端,请参照图9,该终端900包括:
[0111]收发单元901,用于接收视频的媒体展示描述Mro文件,并获取用户请求的接入时间点;
[0112]处理单元902,用于根据所述MH)文件确定与所述接入时间点对应的媒体分片;
[0113]收发单元901,还用于根据处理单元902确定的所述媒体分片获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息;
[0114]处理单元902,还用于根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧,以及确定所述最接近的视频帧为非独立解码视频帧;
[0115]收发单元901,还用于在所述处理单元确定所述最接近的视频帧为非独立解码视频帧后,获取所述最接近的视频帧引用的可独立解码视频帧;
[0116]播放单元903,根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0117]可选的,处理单元902,还用于确定所述最接近的视频帧为可独立解码视频帧;播放单元903,还用于在处理单元902确定所述最接近的视频帧为可独立解码视频帧后,从所述最接近的视频帧开始解码并播放视频。
[0118]可选的,所述分片索引中包含对所述媒体分片的子分片的描述,收发单元901获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息具体为:获取所述媒体分片的分片索弓丨,在所述对所述媒体分片的子分片的描述中包含所述子分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
[0119]可选的,所述MH)文件中或所述分片索引中还包含所述非独立解码视频帧所引用的可独立解码视频帧的帧标识;收发单元901获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧的帧标识获取所述最接近的视频帧引用的可独立解码视频帧。
[0120]可选的,所述可独立解码视频帧的帧标识包括所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息;收发单元901获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息获取所述最接近的视频帧引用的可独立解码视频帧。
[0121]可选的,所述可独立解码视频帧所在分片为仅包括可独立解码视频帧的单独分片,所述MPD文件中包含所述单独分片的获取地址;收发单元901,用于在所述处理单元根据所述MPD文件确定与所述接入时间点对应的媒体分片之前,进一步用于根据所述单独分片的获取地址获取所述单独分片。
[0122]可选的,所述分片索引中还包含所述可独立解码视频帧和所述非独立解码视频帧的类型;处理单元902,还用于根据所述可独立解码视频帧和所述非独立解码视频帧的类型确定所述最接近的视频帧为可独立解码视频帧或者为非独立解码视频帧。
[0123]可选的,收发单元901,还用于根据处理单元902确定的所述媒体分片获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息进一步包括:所述可独立解码视频帧为背景帧,所述非独立解码视频帧为背景更新帧或前向预测帧。
[0124]本发明的所有实施例中,终端可以是手机、PC、平板电脑或【技术领域】内任意其他的网络视频播放设备。
[0125]本发明一个实施例提供了网络视频播放的服务器,请参照图10,该服务器1000包括:
[0126]接收单元1001,用于接收终端在确定与接入时间点对应的媒体分片后发送的获取所述媒体分片的分片索引的请求;
[0127]发送单元1002,用于根据所述请求向所述终端返回所述分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息,以便于所述终端根据所述位置信息在所述可独立解码视频帧和所述非独立解码视频帧中确定与所述接入时间点最接近的视频帧后,从所述最接近的视频帧开始解码并播放视频。
[0128]本发明实施例中的网络视频播放的终端可以基于计算机系统来实现,图1、图2、图6所示的方法均可在基于计算机系统的网络视频播放的终端来实现。图11示出了基于计算机系统来实现的网络视频播放的终端的实施例。本实施例中网络视频播放的终端可以包括:处理器1101、存储器1102和通信接口 1103,其中:
[0129]通信接口 1103,用于与服务器通信。网络视频播放的终端和服务器之间交互的消息均通过通信接口 1103发送和接收。具体地,通信接口 1103用于接收服务器返回的视频的MPD文件,以及用于获取用户请求的接入时间点;存储器1102用于存储程序指令;处理器1101用于通信接口 1103接收视频的MPD文件并获取用户请求的接入时间点后,调用存储器1102中存储的程序指令,执行以下操作:根据所述MPD文件确定与所述接入时间点对应的媒体分片;获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息;根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧;确定所述最接近的视频帧为非独立解码视频帧,获取所述最接近的视频帧引用的可独立解码视频帧;根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
[0130]其中,处理器1101可以是中央处理器(central processing unit, CPU)、专用集成电路(application-specific integrated circuit, ASIC)等。其中,本实施例中的网络视频播放的终端可以包括总线1104。处理器1101、存储器1102以及通信接口 1103之间可通过总线1104连接并通信。其中,存储器1102可以包括:随机存取存储器(random accessmemory, RAM),只读存储器(read-only memory, ROM),磁盘等具有存储功能的实体。
[0131]处理器1101还可以用于执行方法实施例中图1、图2、图6描述的网络视频播放的终端的各步骤,本发明实施例在此不再详述。
[0132]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【权利要求】
1.一种网络视频播放的终端,其特征在于,所述终端包括:收发单元,处理单元和播放单元; 所述收发单元,用于接收视频的媒体展示描述MPD文件,并获取用户请求的接入时间占.所述处理单元,用于根据所述MPD文件确定与所述接入时间点对应的媒体分片;所述收发单元,还用于根据所述处理单元确定的所述媒体分片获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息; 所述处理单元,还用于根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧,以及确定所述最接近的视频帧为非独立解码视频帧; 所述收发单元,还用于在所述处理单元确定所述最接近的视频帧为非独立解码视频帧后,获取所述最接近的视频帧引用的可独立解码视频帧; 所述播放单元,根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
2.根据权利要求1所述的终端,其特征在于: 所述处理单元,还用于确定所述最接近的视频帧为可独立解码视频帧; 所述播放单元,还用于在所述处理单元确定所述最接近的视频帧为可独立解码视频帧后,从所述最接近的视频帧开始解码并播放视频。
3.根据权利要求1或2所述的终端,其特征在于: 所述分片索引中包含对所述媒体分片的子分片的描述; 所述收发单元获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息具体为:获取所述媒体分片的分片索引,在所述对所述媒体分片的子分片的描述中包含所述子分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
4.根据权利要求1-3任一所述的终端,其特征在于: 所述MPD文件中或所述分片索引中还包含所述非独立解码视频帧所引用的可独立解码视频帧的帧标识; 所述收发单元获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧的帧标识获取所述最接近的视频帧引用的可独立解码视频帧。
5.根据权利要求4所述的终端,其特征在于: 所述可独立解码视频帧的帧标识包括所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息; 所述收发单元获取所述最接近的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息获取所述最接近的视频帧引用的可独立解码视频帧。
6.根据权利要求5所述的终端,其特征在于: 所述可独立解码视频帧所在分片为仅包括可独立解码视频帧的单独分片,所述MPD文件中包含所述单独分片的获取地址;所述收发单元,用于在所述处理单元根据所述MPD文件确定与所述接入时间点对应的媒体分片之前,进一步用于根据所述单独分片的获取地址获取所述单独分片。
7.根据权利要求1-6任一所述的终端,其特征在于: 所述分片索引中还包含所述可独立解码视频帧和所述非独立解码视频帧的类型; 所述处理单元,还用于根据所述可独立解码视频帧和所述非独立解码视频帧的类型确定所述最接近的视频帧为可独立解码视频帧或者为非独立解码视频帧。
8.根据权利要求1-7任一所述的终端,其特征在于,所述收发单元,还用于根据所述处理单元确定的所述媒体分片获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息进一步包括:所述可独立解码视频帧为背景帧,所述非独立解码视频帧为背景更新帧或前向预测帧。
9.一种网络视频播放的服务器,其特征在于,所述服务器包括: 接收单元,用于接收终端在确定与接入时间点对应的媒体分片后发送的获取所述媒体分片的分片索引的请求; 所述发送单元,用于根据所述请求向所述终端返回所述分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
10.一种网络视频播放的方法,其特征在于,所述方法包括: 接收视频的媒体展示描述MPD文件,并获取用户请求的接入时间点; 根据所述MPD文件确定与所述接入时间点对应的媒体分片; 获取所述媒体分片的分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息; 根据所述位置信息,在所述可独立解码视频帧和所述引用可独立解码视频帧的非独立解码视频帧中确定与所述接入时间点最接近的视频帧; 确定所述最接近的视频帧为非独立解码视频帧,获取所述最接近的视频帧引用的可独立解码视频帧; 根据所述最接近的视频帧引用的可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括: 确定所述最接近的视频帧为可独立解码视频帧,从所述最接近的视频帧开始解码并播放视频。
12.根据权利要求10或11所述的方法,其特征在于: 所述分片索引中包含对所述媒体分片的子分片的描述; 所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的 位置信息具体为:在所述对所述媒体分片的子分片的描述中包含所述子分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息。
13.根据权利要求10-12任一所述的方法,其特征在于: 所述MPD文件中或所述分片索引中还包括所述非独立解码视频帧所引用的可独立解码视频帧的帧标识;所述获取所述最近接的视频帧引用的可独立解码视频帧具体为:根据所述可独立解码视频帧的帧标识获取所述最接近的视频帧引用的可独立解码视频帧。
14.根据权利要求13的方法,其特征在于: 所述可独立解码视频帧的帧标识包括所述可独立解码视频帧所在分片的分片标识、以及所述可独立解码视频帧在所述分片中的位置信息。
15.根据权利要求14的方法,其特征在于: 所述可独立解码视频帧所在分片为仅包括可独立解码视频帧的单独分片,所述MPD文件中包含所述单独分片的获取地址; 所述根据MPD文件确定与所述接入时间点对应的媒体分片之前,所述方法还包括:根据所述单独分片的获取地址获取所述单独分片。
16.根据权利要 求10-15任一所述的方法,其特征在于: 所述分片索引中还包含所述可独立解码视频帧和所述非独立解码视频帧的类型;根据所述可独立解码视频帧和所述非独立解码视频帧的类型确定所述最接近的视频帧为可独立解码视频帧或者为非独立解码视频帧。
17.根据权利要求10-16任一所述的方法,其特征在于: 所述可独立解码视频帧为背景帧,所述非独立解码视频帧为背景更新帧或前向预测帧。
18.—种网络视频播放的方法,其特征在于,所述方法包括: 接收终端在确定与接入时间点对应的媒体分片后发送的获取所述媒体分片的分片索引的请求; 向所述终端返回所述分片索引,所述分片索引包含所述媒体分片中可独立解码视频帧和引用可独立解码视频帧的非独立解码视频帧的位置信息,以便于所述终端根据所述位置信息在所述可独立解码视频帧和所述非独立解码视频帧中确定与所述接入时间点最接近的视频帧后,从所述最接近的视频帧开始解码并播放视频。
【文档编号】H04N21/4402GK103957471SQ201410186163
【公开日】2014年7月30日 申请日期:2014年5月5日 优先权日:2014年5月5日
【发明者】杨晓峰, 张仁宙, 石腾 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1