CN103024603A - 一种用于解决播放网络视频时短时停顿的装置及方法 - Google Patents

一种用于解决播放网络视频时短时停顿的装置及方法 Download PDF

Info

Publication number
CN103024603A
CN103024603A CN2012105804823A CN201210580482A CN103024603A CN 103024603 A CN103024603 A CN 103024603A CN 2012105804823 A CN2012105804823 A CN 2012105804823A CN 201210580482 A CN201210580482 A CN 201210580482A CN 103024603 A CN103024603 A CN 103024603A
Authority
CN
China
Prior art keywords
video
data
flv
segmentation
tag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105804823A
Other languages
English (en)
Other versions
CN103024603B (zh
Inventor
王少刚
吴昊宇
姚键
潘柏宇
卢述奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba China Co Ltd
Youku Network Technology Beijing Co Ltd
Original Assignee
1Verge Internet Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 1Verge Internet Technology Beijing Co Ltd filed Critical 1Verge Internet Technology Beijing Co Ltd
Priority to CN201210580482.3A priority Critical patent/CN103024603B/zh
Publication of CN103024603A publication Critical patent/CN103024603A/zh
Application granted granted Critical
Publication of CN103024603B publication Critical patent/CN103024603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Systems (AREA)

Abstract

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

Description

一种用于解决播放网络视频时短时停顿的装置及方法
技术领域
本发明涉及网络视频领域,尤其是涉及一种用于解决播放网络视频时短时停顿的装置及方法。
背景技术
上网用浏览器看视频的用户越来越多,其中很多视频是电影或者电视剧等长视频,而且用户对视频清晰度的要求也越来越高。这些导致视频文件越来越大,对浏览器缓存的要求越来越高。如果是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分段视频文件。
本发明还提供了一种用于解决播放网络视频时短时停顿的方法,该方法包括:
步骤(1)将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所示,对于数据缓存模块中的第一分段视频文件,不做任何修改,直接提供给播放模块进行播放。但是需要记下最后的时间戳;举例来说,分段视频文件的第一个视频帧应该在0秒播放,其时间戳就是0s,第二个视频帧应该在第40ms时播放(假设帧率为25),时间戳就是40ms,依次类推,第三个图片就是80ms,第四个120ms......。最后的时间戳为最后一个视频帧的时间戳加上最后一个视频帧的播放时长。按照上面的例子,每一个视频帧的播放时长就是40ms。同理,音频帧的播放时长为46.439909297052154ms。对于其它分段视频,由于同一视频的不同分段的flv开头和metadata信息是相同的,因此丢掉flv开头(FLV头文件,共9字节,前3个字节是文件格式标识.第4个字节是版本,第5个字节的前5个bit是保留的必须是0.第5个字节的第6个bit音频类型标志(TypeFlagsAudio),第5个字节的第7个bit也是保留的必须是0,第5个字节的第8个bit视频类型标志(TypeFlagsVideo)第6-9的四个字节还是保留的)和metadata信息(flv文件中的元信息,是一些描述flv文件各类属性的信息。这些信息以AMF格式保存在文件的起始部分),只留下视频和音频tag(flv文件的基本单元是tag,根据tag的类型字节区分为视频和音频,tag头包括类型、时间戳、内容长度,共有11比特,tag中有3字节表示时间戳)。并且丢掉记录解码信息的伪帧(对于h264和aac解码来说,为了支持flv格式,需要一个单独的tag,该tag既不属于视频类型也不属于音频类型,因此也不需要播放,该tag称为伪帧)。flash播放器中的过滤器修改tag的时间戳(加上以前面分段视频累计的视频时长和音频时长),也就是说,第二分段视频中视频帧和音频帧的时间戳都要加上第一分段视频的视频时长和音频时长,以此类推,时间戳是放入tag中的,因此需要修改tag,然后重新放入数据缓存模块。举一个具体的例子,一个视频8分钟(帧率25),切割成两个分段,根据视频信息,决定第一分段共有6335个视频帧,其时长为6335*40=253400ms,音频部分5457帧,时长5457*1024000/22050.=253422.585,音频比视频长22.585ms。播放完第一分段视频的时候,要记录这两个时长,然后把这两个时长分别加到第二分段视频文件中的每一个视频帧和音频帧。
flash播放器中的播放模块在播放flv分段视频时,边下边拼成一个视频。具体过程如下:Flash播放器包括数据缓存模块,用来存放下载的视频数据;以及数据拼接和转换模块,把缓存的视频数据拼接和转换为flv格式。在Flash播放器中的播放模块需要视频数据的时候,数据拼接和转换模块会计算需要的视频数据的地址,然后从数据缓存模块取出已经缓存的视频数据,转换为flv格式的视频数据,交给播放模块进行播放。Flash播放器会在内部实现一个数据缓存和数据组装。数据缓存部分用来存储不同的flv视频流信息。然后在播放的时候,通过数据组装部分,给flv数据添加上元信息(即metadata信息),比如说在切换flv文件的时候,需要添加上flv头和metadata信息。数据组装部分还负责判断一个flv文件是否已经播放结束,如果播放结束就自动拼接下一个flv文件。在视频进行拖动的时候,数据组装部分根据关键帧元数据判断出拖动的位置,并且取出正确的缓存数据进行播放。经过这些处理,将以前flash播放器播放两个分段视频进行切换的工作,转换为一个瞬间完成的数据取出,转换和拼接,播放的工作,尽可能地减少了两个分段视频切换的停顿现象。
如图2所示,根据本发明的方法包括以下步骤:
步骤(1)将flv格式或mp4格式的视频进行分段后放入数据缓存模块,或者利用开源软件程序把视频转成一个flv格式的视频后再分段;
步骤(2)去掉flv开头和metadata信息、保留视频和音频tag、并且去掉记录解码信息的伪帧、修改tag的时间戳;
步骤(3)给flv数据添加上元信息和/或flv头信息;
步骤(4)计算需要的视频数据的地址并从数据缓存模块取出已经缓存的视频数据进行拼接和格式转换;
步骤(5)对取出的视频数据进行播放。
本发明所取得的技术效果为用flash播放flv分片视频不会在分片点有短时停顿现象了。
以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的。这些都在本发明的权利要求所限定的保护范围内。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210580482.3A CN103024603B (zh) 2012-12-27 2012-12-27 一种用于解决播放网络视频时短时停顿的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210580482.3A CN103024603B (zh) 2012-12-27 2012-12-27 一种用于解决播放网络视频时短时停顿的装置及方法

Publications (2)

Publication Number Publication Date
CN103024603A true CN103024603A (zh) 2013-04-03
CN103024603B CN103024603B (zh) 2016-06-15

Family

ID=47972653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210580482.3A Active CN103024603B (zh) 2012-12-27 2012-12-27 一种用于解决播放网络视频时短时停顿的装置及方法

Country Status (1)

Country Link
CN (1) CN103024603B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103747065A (zh) * 2013-12-27 2014-04-23 河海大学 客户端http检索全索引容器格式媒体资源时间片段的方法
CN104581398A (zh) * 2013-10-15 2015-04-29 富泰华工业(深圳)有限公司 缓存数据管理系统及方法
CN105072456A (zh) * 2015-07-14 2015-11-18 中国科学院信息工程研究所 基于Hadoop的密文视频流处理方法、装置、服务器及系统
CN105141973A (zh) * 2015-09-01 2015-12-09 北京暴风科技股份有限公司 多分段的媒体文件拼接方法和系统
CN105187896A (zh) * 2015-09-09 2015-12-23 北京暴风科技股份有限公司 多分段的媒体文件播放方法和系统
CN105187897A (zh) * 2015-09-09 2015-12-23 北京暴风科技股份有限公司 多分段的媒体文件跨段播放方法和系统
CN107077873A (zh) * 2014-09-25 2017-08-18 微软技术许可有限责任公司 将样本元数据与媒体样本进行耦合
CN108090102A (zh) * 2016-11-21 2018-05-29 法乐第(北京)网络科技有限公司 一种视频处理设备、车辆及视频处理方法
CN108924573A (zh) * 2018-06-21 2018-11-30 深圳市网心科技有限公司 数据流处理、播放方法、服务器、播放装置、系统及介质
CN110856017A (zh) * 2019-11-07 2020-02-28 西安奥卡云数据科技有限公司 一种视频处理方法及其装置
CN112243136A (zh) * 2019-07-16 2021-01-19 中国移动通信集团浙江有限公司 内容播放方法、视频存储方法和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001517040A (ja) * 1997-09-12 2001-10-02 イメディア コーポレイション 圧縮ビデオプログラムのシームレススプライシング
CN101533655A (zh) * 2008-12-19 2009-09-16 徐清华 基于高清媒体播放器的多个ts档视频文件的播放方法
CN101771845A (zh) * 2009-01-04 2010-07-07 联想(北京)有限公司 一种文件的播放处理方法、装置及播放器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001517040A (ja) * 1997-09-12 2001-10-02 イメディア コーポレイション 圧縮ビデオプログラムのシームレススプライシング
CN101533655A (zh) * 2008-12-19 2009-09-16 徐清华 基于高清媒体播放器的多个ts档视频文件的播放方法
CN101771845A (zh) * 2009-01-04 2010-07-07 联想(北京)有限公司 一种文件的播放处理方法、装置及播放器

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104581398A (zh) * 2013-10-15 2015-04-29 富泰华工业(深圳)有限公司 缓存数据管理系统及方法
CN104581398B (zh) * 2013-10-15 2019-03-15 富泰华工业(深圳)有限公司 缓存数据管理系统及方法
CN103747065A (zh) * 2013-12-27 2014-04-23 河海大学 客户端http检索全索引容器格式媒体资源时间片段的方法
CN107077873A (zh) * 2014-09-25 2017-08-18 微软技术许可有限责任公司 将样本元数据与媒体样本进行耦合
CN105072456A (zh) * 2015-07-14 2015-11-18 中国科学院信息工程研究所 基于Hadoop的密文视频流处理方法、装置、服务器及系统
CN105141973A (zh) * 2015-09-01 2015-12-09 北京暴风科技股份有限公司 多分段的媒体文件拼接方法和系统
CN105187896B (zh) * 2015-09-09 2019-04-23 暴风集团股份有限公司 多分段的媒体文件播放方法和系统
CN105187896A (zh) * 2015-09-09 2015-12-23 北京暴风科技股份有限公司 多分段的媒体文件播放方法和系统
CN105187897A (zh) * 2015-09-09 2015-12-23 北京暴风科技股份有限公司 多分段的媒体文件跨段播放方法和系统
CN105187897B (zh) * 2015-09-09 2019-02-05 暴风集团股份有限公司 多分段的媒体文件跨段播放方法和系统
CN108090102A (zh) * 2016-11-21 2018-05-29 法乐第(北京)网络科技有限公司 一种视频处理设备、车辆及视频处理方法
CN108924573A (zh) * 2018-06-21 2018-11-30 深圳市网心科技有限公司 数据流处理、播放方法、服务器、播放装置、系统及介质
CN108924573B (zh) * 2018-06-21 2021-08-31 深圳市网心科技有限公司 数据流处理、播放方法、服务器、播放装置、系统及介质
CN112243136A (zh) * 2019-07-16 2021-01-19 中国移动通信集团浙江有限公司 内容播放方法、视频存储方法和设备
CN112243136B (zh) * 2019-07-16 2023-06-30 中国移动通信集团浙江有限公司 内容播放方法、视频存储方法和设备
CN110856017A (zh) * 2019-11-07 2020-02-28 西安奥卡云数据科技有限公司 一种视频处理方法及其装置

Also Published As

Publication number Publication date
CN103024603B (zh) 2016-06-15

Similar Documents

Publication Publication Date Title
CN103024603B (zh) 一种用于解决播放网络视频时短时停顿的装置及方法
CN109168078B (zh) 一种视频清晰度切换方法及装置
US10645465B2 (en) Video file universal identifier for metadata resolution
CN105187896A (zh) 多分段的媒体文件播放方法和系统
CN110784750B (zh) 视频播放方法、装置及计算机设备
CN103024604B (zh) 一种用于实现ts文件无缝连接的装置及方法
WO2016058411A1 (zh) 一种http实时流媒体分片的拼接方法及拼接系统
CN103093776A (zh) 网络视听中多音轨内容播放方法及系统
CN105657524A (zh) 一种视频间无缝切换的方法
CN105141973A (zh) 多分段的媒体文件拼接方法和系统
CN104202684A (zh) 一种分段网络视频无缝播放方法和装置
RU2008132324A (ru) Система и способ приема и воспроизведения программ сетевого телевещания
CN111669645B (zh) 视频的播放方法、装置、电子设备及存储介质
CN107517411A (zh) 一种基于GStreamer框架的视频播放方法
CN105872599A (zh) 一种提供、下载视频的方法及设备
CN105187897A (zh) 多分段的媒体文件跨段播放方法和系统
CN107371053A (zh) 音频视频流对比分析方法及装置
CN101778287B (zh) 一种数字电视导航方法、系统及装置
CN109640162A (zh) 码流转换方法及系统
JP2016072858A (ja) メディアデータ生成方法、メディアデータ再生方法、メディアデータ生成装置、メディアデータ再生装置、コンピュータ読み取り可能な記録媒体、及びプログラム
CN103501457B (zh) 一种节目播放的方法及设备
CN105049876B (zh) 一种基于实时转码实现时移的方法及装置
CN102098572B (zh) 基于flash的自定义流媒体嵌入与播放系统及其实现方法
CN112055253B (zh) 独立字幕流的添加复用方法和装置
CN102231847B (zh) 一种支持流媒体文件直接帧精确定位方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee after: Youku network technology (Beijing) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: 1VERGE INTERNET TECHNOLOGY (BEIJING) Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20200630

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: Youku network technology (Beijing) Co.,Ltd.

TR01 Transfer of patent right