一种用于解决播放网络视频时短时停顿的装置及方法制造方法及图纸

技术编号:8537433 阅读:210 留言:0更新日期:2013-04-04 22:38
本发明专利技术提供了一种用于解决播放网络视频时短时停顿的装置及方法,该装置包括:用于对视频进行分段的转码子系统,flash播放器,其包括用来存放下载的视频数据的数据缓存模块,用于修改tag的时间戳的过滤器,用于给flv数据添加上元信息和/或flv头信息的数据组装模块,用于计算需要的视频数据的地址并从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换的视频数据拼接和转换模块,用于对取出的视频数据进行播放的播放模块。该方法包括:将视频分段;修改tag的时间戳;给flv数据添加上元信息和/或flv头信息;从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换;对取出的视频数据进行播放。

【技术实现步骤摘要】

本专利技术涉及网络视频领域,尤其是涉及。
技术介绍
上网用浏览器看视频的用户越来越多,其中很多视频是电影或者电视剧等长视频,而且用户对视频清晰度的要求也越来越高。这些导致视频文件越来越大,对浏览器缓存的要求越来越高。如果是http方式下载视频,也就是说,播放器(flash脚本)在网页上播放视频时,通过约定的机制得到视频文件的http地址,然后发出请求,边下载边播放(目前flash播放常用的视频格式为flv和mp4)。用户拖拽和没看完视频造成了带宽的浪费。因 此多数视频网站都采取对视频进行分段的方式来解决这个问题。将一个视频分段为几个视频是指把一个视频文件的视频和音频部分,按照约定 时间分成多组(或称多个分段),对每一组按照视频格式要求重新组成新的视频文件。分段完的每一个文件都是一个独立的视频文件。播放器在处理不同分段连接的时候,由于是多个独立的视频文件,因此会有短时间停顿现象。Flash播放器播放的时候之所以会有停顿的感觉,主要是因为flash播放器判断一个分段文件结束了,要初始化下一个分段文件(包括分析分段视频的格式,宽、高等,解码器的初始化)。而且分段处音视频也不会与时间戳正好对上。一个分段视频文件分为视频部分和音频部分。分段是拿出一部分视频和音频组成一个新文件。由于视频和音频都是离散的,所以就有可能时间长度不是正好相等,也就是说时间戳不能对上。例如假设高清视频视频部分帧率为25,音频为22050Hz,这样一个视频帧时间长度为40ms,音频帧为46. 4ms(1024000/22050),如果一个分段按7分钟(即约定的时间)来切割的话,需要10500个视频帧和 9044(420000/1024000*22050=9043. 9453125)个音频帧,结果音频比视频长 2. 5ms。实际上因为切割点必须为视频的关键帧,这是因为视频文件的视频帧是由一个个图片组成,视频编码就是压缩图片。有的图片是独立压缩,不需要其它图片就可以解压缩,这样的图片叫做关键帧;有的图片需要前一个或者其它图片才能解压缩,这样的图片叫做非关键帧。如果从非关键帧开始播放,因为解码信息不完全,就会出现花屏的效果,直到下一个关键帧才会正常播放,所以理论上最大的差距可能为音频帧的一半,既为46ms的一半23ms。假如音频比视频长20ms,播放器在播放完视频的时候,还有20ms的音频,它在播最后20ms音频的时候,是没有视频可以播放的。如果在把视频给flash播放器播放之前,用脚本把两个分段视频合成一个,就不会有这个问题了。因此,本专利技术提供了一种用于解决播放网络视频时短时停顿的技术方案。
技术实现思路
本专利技术提供了一种用于解决播放网络视频时短时停顿的装置,该装置包括转码子系统用于将flv格式或mp4格式的视频进行分段后放入数据缓存模块,或者转码子系统利用开源软件程序把视频转成一个flv格式的视频后再分段;flash播放器,包括用来存放下载的视频数据的数据缓存模块,用于去掉flv开头和metadata信息、保留视频和音频tag、并且去掉记录解码信息的伪巾贞、修改tag的时间戳的过滤器,用于给flv数据添加上元信息和/或flv头信息的数据组装模块,用于计算需要的视频数据的地址并从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换的视频数据拼接和转换模块,用于对取出的视频数据进行播放的播放模块。进一步,flash播放器中的过滤器按如下方式修改tag的时间戳后一分段视频中视频帧和音频帧的时间戳加上前面分段 视频的视频时长和音频时长。进一步,当视频进行拖动的时候,flash播放器中的数据组装部分根据关键帧元数据判断出拖动的位置,并且取出正确的缓存数据进行播放。进一步,数据组装部分还用于判断一个flv分段视频文件是否已经播放结束,如果播放结束就自动拼接下一个flv分段视频文件。本专利技术还提供了一种用于解决播放网络视频时短时停顿的方法,该方法包括步骤(I)将flv格式或mp4格式的视频进行分段后放入数据缓存模块,或者利用开源软件程序把视频转成一个flv格式的视频后再分段;步骤(2)去掉flv开头和metadata信息、保留视频和音频tag、并且去掉记录解码信息的伪巾贞、修改tag的时间戳;步骤(3)给flv数据添加上元信息和/或flv头信息;步骤(4)计算需要的视频数据的地址并从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换;步骤(5)对取出的视频数据进行播放。进一步,步骤(2)中按如下方式修改tag的时间戳后一分段视频中视频帧和音频帧的时间戳加上前面分段视频的视频时长和音频时长。进一步,当视频进行拖动的时候,根据关键帧元数据判断出拖动的位置,并且取出正确的缓存数据进行播放。进一步,判断一个flv分段视频文件是否已经播放结束,如果播放结束就自动拼接下一个flv分段视频文件。附图说明图1是根据本专利技术的flash播放器的结构示意图。图2是根据本专利技术的方法的流程图。具体实施例方式为使本专利技术的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明根据本专利技术的装置包括1.转码子系统用于将flv格式或mp4格式的视频进行分段后放入数据缓存模块,或者转码子系统利用开源软件程序把视频转成一个flv格式的视频后再分段。2. flash播放器如图1所示,对于数据缓存模块中的第一分段视频文件,不做任何修改,直接提供给播放模块进行播放。但是需要记下最后的时间戳;举例来说,分段视频文件的第一个视频帧应该在O秒播放,其时间戳就是Os,第二个视频帧应该在第40ms时播放(假设帧率为25),时间戳就是40ms,依次类推,第三个图片就是80ms,第四个120ms.......最后的时间戳为最后一个视频巾贞的时间戳加上最后一个视频巾贞的播放时长。按照上面的例子,每一个视频帧的播放时长就是40ms。同理,音频帧的播放时长为46. 439909297052154ms。对于其它分段视频,由于同一视频的不同分段的flv开头和metadata信息是相同的,因此丢掉flv开头(FLV头文件,共9字节,前3个字节是文件格式标识.第4个字节是版本,第5个字节的前5个bit是保留的必须是O.第5个字节的第6个bit音频类型标志(TypeFlagsAudio),第5个字节的第7个bit也是保留的必须是O,第5个字节的第8个bit视频类型标志(TypeFlagsVideo)第6_9的四个字节还是保留的)和metadata信息(flv文件中的元信息,是一些描述flv文件各类属性的信息。这些信息以 AME格式保存在文件的起始部分),只留下视频和音频tag(flv文件的基本单元是tag,根据tag的类型字节区分为视频和音频,tag头包括类型、时间戳、内容长度,共有11比特,tag中有3字节表示时间戳)。并且丢掉记录解码信息的伪帧(对于h264和aac解码来说,为了支持flv格式,需要一个单独的tag,该tag既不属于视频类型也不属于音频类型,因此也不需要播放,该tag称为伪帧)。flash播放器中的过滤器修改tag的时间戳(加上以前面分段视频累计的视频时长和音频时长),也就是说,第二分段视频中视频帧和音频帧的时间戳都要加上第一分段视频的视频时长和音频时长,以此类推,时间本文档来自技高网
...

【技术保护点】
一种用于解决播放网络视频时短时停顿的装置,其特征在于该装置包括:转码子系统:用于将flv格式或mp4格式的视频进行分段后放入数据缓存模块,或者转码子系统利用开源软件程序把视频转成一个flv格式的视频后再分段;flash播放器,包括用来存放下载的视频数据的数据缓存模块,用于去掉flv开头和metadata信息、保留视频和音频tag、并且去掉记录解码信息的伪帧、修改tag的时间戳的过滤器,用于给flv数据添加上元信息和/或flv头信息的数据组装模块,用于计算需要的视频数据的地址并从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换的视频数据拼接和转换模块,用于对取出的视频数据进行播放的播放模块。

【技术特征摘要】
1.一种用于解决播放网络视频时短时停顿的装置,其特征在于该装置包括转码子系统用于将flv格式或mp4格式的视频进行分段后放入数据缓存模块,或者转码子系统利用开源软件程序把视频转成一个flv格式的视频后再分段;flash播放器,包括用来存放下载的视频数据的数据缓存模块,用于去掉flv开头和 metadata信息、保留视频和音频tag、并且去掉记录解码信息的伪巾贞、修改tag的时间戳的过滤器,用于给flv数据添加上元信息和/或flv头信息的数据组装模块,用于计算需要的视频数据的地址并从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换的视频数据拼接和转换模块,用于对取出的视频数据进行播放的播放模块。2.根据权利要求1所述的装置,其特征在于flash播放器中的过滤器按如下方式修改tag的时间戳后一分段视频中视频帧和音频帧的时间戳加上前面分段视频的视频时长和音频时长。3.根据权利要求1所述的装置,其特征在于当视频进行拖动的时候,flash播放器中的数据组装部分根据关键帧元数据判断出拖动的位置,并且取出正确的缓存数据进行播放。4.根据权利要求1所述的装置,其特征在于数据组装部分还用于判断一...

【专利技术属性】
技术研发人员:王少刚吴昊宇姚键潘柏宇卢述奇
申请(专利权)人:合一网络技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1