[发明专利]视频流快进快退的方法有效
申请号: | 201010156923.8 | 申请日: | 2010-04-23 |
公开(公告)号: | CN101841692A | 公开(公告)日: | 2010-09-22 |
发明(设计)人: | 徐佳宏;肖友能;张雪振 | 申请(专利权)人: | 深圳市茁壮网络股份有限公司 |
主分类号: | H04N7/173 | 分类号: | H04N7/173;H04N7/24 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 彭愿洁;李文红 |
地址: | 518002 广东省深圳市罗湖区沿河*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 视频 快进 方法 | ||
技术领域
本发明涉及视频技术领域,尤其涉及一种视频流快进快退的方法。
背景技术
首先简要介绍一下对视频点播涉及的一些关键帧:
I帧:是一个全帧压缩编码帧,也叫帧内编码帧,因此I帧的数据量一般比较大,I帧不需要参考其他帧而生成,它是P帧或是B帧的参考帧,解码时仅用I帧就可以重构一个完整的图像。
P帧:是一个前向预测编码帧,也称为帧间编码帧,P帧需要参考前面的与其相邻的I帧或P帧而生成,同时它也是其他P帧或者B帧的参考帧,解码时必须依赖其前面的I帧或P帧才可以重构出完整的图像。
B帧:是一个双向预测编码帧,它也是一个帧间编码帧,B帧需要参考前面的I帧或P帧或后面的P帧生成,B帧不作为其它帧的参考帧,因此它的解码错误不会造成错误扩散,但是B帧解码时必须依赖I帧或P帧才可重构出完整的图像。
用户在观看视频节目的时候,有时会想先了解一下视频所播放的大概内容,这时需要进行快进或快退的操作。现有绝大多数视频快进快退方案都是通过先找到I帧,从而通过播放I帧来实现的,具体的过程如下:
解析视频源文件,一帧一帧的获取I帧数据,并获取当前I帧在源视频的播放时间;按照源视频的格式重新封装I帧数据,并将当前帧的播放时间作为时间戳封装进去,标识这个I帧的播放时间,也起到定位一个I帧起始位置的作用;新生成的只有I帧数据的视频文件与源视频文件一一对应存在。
当有快进发生时,服务器记录发生快进的时间,从只含I帧数据的视频文件中找到与发生快进时最接近的时间戳,并从这个位置开始正向读取只含I帧的数据包以此来实现快进,系统可按照需要快进的倍数来确定是否跳帧,比如系统可判断2倍数或4倍数快进不需要跳帧,只需要正向顺序读取数据即可,8倍数跳2帧,16倍数跳8帧等;跳帧也即间隔若干帧后再读取一帧的数据;最后需要更新每个I帧的时间戳,从而获取两个时间戳之间的时间长度,当n倍数时只要将这个时间长度除以n后,加上前一个I帧的时间戳后更新到后面这个I帧的时间戳信息即可。
当有快退发生时,只需要在找到最后的时间戳的位置反向找前一个时间戳读取数据,也就是以时间戳为分隔符反向一帧一帧的读取数据,其他与快进处理类似。
上述现有方案存在以下的不足:
1、将所有I帧数据提取组成一个新视频文件,比起建立I帧的索引文件的做法,它占据了较多的磁盘空间;
2、根据快进快退的倍数固定的跳过若干帧来实现减小数据量的目的,但是由于每一帧的数据大小是不确定的,这样所带来的后果就是码率波动会变大,这会浪费传输带宽甚至使视频质量下降,并且,由于这一规则不能动态的更新,致使有的视频可能会造成跳帧太少,需要播放的I帧数据量很大,如果给定带宽不足就会严重影响播放。
发明内容
本发明提供一种视频流快进快退的方法,以克服现有方案带宽浪费以及码率不平稳的问题。
为此,本发明实施例采用如下技术方案:
一种视频流快进快退的方法,包括:
解析源视频文件,获取包含各个I帧索引信息的索引文件;
接收到快进或快退请求时,执行以下步骤:
a.定位视频流当前播放时刻;
b.查询所述索引文件,获得与所述当前播放时刻最接近的当前I帧的索引信息;
c.利用快进或快退倍数以及与所述当前I帧的索引信息,确定需要跳过的I帧的数量NF;
d.对于快进请求,向后跳过NF个I帧;对于快退请求,向前跳过NF个I帧;
e.从索引文件中查询到下一个I帧信息,依据索引文件中记录的该I帧的信息从原始文件中获得该I帧的实际数据并播放该I帧数据;
重复执行d-e,直至处理完索引文件的最后一个I帧或者接收到其它的处理请求。
其中,采用如下公式确定需要跳过的I帧的数量NF:
NF=cnt-1;
cnt满足如下不等式:((ltl-lsz)/cnt)/((T-ltm)/n<=S/T;
其中,
n为快进倍数;
cnt为常数,初始值为1,每次增加幅度为1;
ltl、lsz、T、ltm和S为索引信息,具体含义如下:
ltl为源视频中所有I帧数据量总和;
lsz从源视频起始位置到当前I帧所有I帧数据量的总和;
T为源视频播放总时间;
ltm为当前I帧在源视频中的播放时间点;
S为源视频的总数据量。
对于快退请求,采用如下公式确定需要跳过的I帧的数量NF:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市茁壮网络股份有限公司,未经深圳市茁壮网络股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010156923.8/2.html,转载请声明来源钻瓜专利网。