一种不依赖时间戳的实时视频码流播放速度控制方法

文档序号:7818758阅读:395来源:国知局
一种不依赖时间戳的实时视频码流播放速度控制方法
【专利摘要】本发明属于多媒体通信领域,尤其涉及一种不依赖时间戳的实时视频码流播放速度控制方法,主要步骤包括:首先视频接收方设置视频缓冲时间;然后收到视频帧后解码送入缓冲队列,视频缓冲帧数加1,计算获得当前的缓冲时间,当缓冲时间大于等于指定的缓冲时间,开始播放,视频缓冲帧数减1,同时记录该帧的显示时间;然后根据设置视频缓冲时间合理范围;每播放一帧,计算获得当前的缓冲时间;如果当前的缓冲时间大于视频最大缓冲时间,帧间隔减1;如果当前的缓冲时间小于视频最小缓冲时间,帧间隔加1。本发明为在多媒体通信或安防监控系统中,使视频监看软件或设备可以平滑播放网络抖动环境中无法保证时间戳正确性的视频码流。
【专利说明】一种不依赖时间戳的实时视频码流播放速度控制方法

【技术领域】
[0001]本发明属于多媒体通信领域,尤其涉及一种不依赖时间戳的实时视频码流播放速度控制方法。

【背景技术】
[0002]在多媒体通信领域,实时视频指的是视频采集方对所拍摄的视频进行采集、编码、打包、网络传输,同时视频接收方进行网络接收、解包、解码、显示场景中的在网络上传输的视频码流。为了使视频回放软件或设备能够为每一帧视频安排合适的播放时间,在视频采集阶段向视频码流或视频文件中为每一帧视频附加的能体现其播放时间的数值,这就是时间戳。由于网络带宽、信号强度等原因,导致所传输的数据不能按发送时的频率到达接收方的现象被称为网络抖动。两帧视频在播放时间上的差值被称为帧间隔。
[0003]现有的实时码流回放主要有两种方法:一种是接收方每收到一个完整的视频帧,立即安排该帧的解码与显示;另一种是接收方收到并解码一个视频帧后,根据其携带的时间戳信息,安排合适的时间进行显示。
[0004]上述方法一在存在网络抖动的环境中,会随着网络的抖动情况导致播放效果产生卡顿现象;上述方法二对于视频采集方未正确附加时间戳的情况下,接收方不能正确播放视频。


【发明内容】

[0005]为了在网络抖动、且视频采集方不保证视频码流时间戳正确的情况下,能够使视频接收方平滑的播放收到的视频,本发明提出一种不依赖时间戳的实时视频码流播放速度控制方法,主要步骤包括:
[0006]步骤1、参数设置,视频采集方设置默认的帧间隔为40毫秒;视频接收方设置视频缓冲时间,单位为毫秒,默认为500毫秒;
[0007]步骤2、视频帧的接收,视频接收方每收到网络传输的视频帧后,立刻进行解码,将解码后可用于显示的视频帧送入视频帧缓冲队列,视频缓冲帧数加I ;通过当前视频缓冲队列中的视频缓冲帧数乘以帧间隔,计算获得当前的缓冲时间,当缓冲时间大于等于指定的缓冲时间,开始进行视频帧的播放过程;
[0008]步骤3、视频帧的播放控制,从缓冲队列中取出的第一个视频帧立刻进行显示,同时记录该帧的显示时间;此后当当前时间距离上一帧的显示时间的差值大于等于帧间隔时,从缓冲队列中取出一帧进行显示,视频缓冲帧数减1,同时记录该帧的显示时间,并对帧间隔进行调整;
[0009]步骤4、帧间隔的调整,首先根据设置视频缓冲时间,上下各浮动1/2的范围,作为视频缓冲合理范围;每播放一帧,查询当前视频缓冲队列中的缓冲帧数,缓冲帧数乘以帧间隔,计算获得当前的缓冲时间;如果当前的缓冲时间处于视频缓冲合理范围,则不调整帧间隔;如果当前的缓冲时间大于视频最大缓冲时间,说明当前的播放速度偏慢,应加快播放速度,帧间隔减I ;如果当前的缓冲时间小于视频最小缓冲时间,说明当前的播放速度偏快,应减慢播放速度,帧间隔加I ;这样就达到了根据实际编码帧率和网络状况,动态调整帧间隔,平滑播放实时视频码流的效果。
[0010]本发明的有益效果为在多媒体通信或安防监控系统中,使视频监看软件或设备可以平滑播放网络抖动环境中无法保证时间戳正确性的视频码流。

【专利附图】

【附图说明】
[0011]图1为视频播放控制流程图;
[0012]图2为视频缓冲时间合理范围示意图。

【具体实施方式】
[0013]下面结合附图和实施例对本发明所提出的方法做进一步的说明。
[0014]本发明提出一种不依赖时间戳的实时视频码流播放速度控制方法,主要步骤包括:
[0015]首先进行参数设置。视频采集方设置默认的帧间隔为40毫秒;视频接收方根据网络状况,预估网络抖动程度,设置视频缓冲时间,单位为毫秒,默认为500毫秒。
[0016]其次进行视频帧的接收。视频接收方每收到网络传输的视频帧后,立刻进行解码,将解码后可用于显示的视频帧送入视频帧缓冲队列,视频缓冲帧数加I ;通过当前视频缓冲队列中的视频缓冲帧数乘以帧间隔,计算获得当前的缓冲时间,当缓冲时间大于等于指定的缓冲时间,开始进行视频帧的播放过程。
[0017]然后进行视频帧的播放控制。从缓冲队列中取出的第一个视频帧立刻进行显示,同时记录该帧的显示时间;此后当当前时间距离上一帧的显示时间的差值大于等于帧间隔时,从缓冲队列中取出一帧进行显示,视频缓冲帧数减1,同时记录该帧的显示时间,并对帧间隔进行调整,其流程图如图1所示。
[0018]最后再进行帧间隔的调整。首先根据设置视频缓冲时间,上下各浮动1/2的范围,作为视频缓冲合理范围。以默认值500ms为例,如图2所示,将250ms?500ms作为视频缓冲合理范围:每播放一帧,查询当前视频缓冲队列中的缓冲帧数,缓冲帧数乘以帧间隔,计算获得当前的缓冲时间;如果当前的缓冲时间处于视频缓冲合理范围,则不调整帧间隔;如果当前的缓冲时间大于视频最大缓冲时间,说明当前的播放速度偏慢,应加快播放速度,帧间隔减I ;如果当前的缓冲时间小于视频最小缓冲时间,说明当前的播放速度偏快,应减慢播放速度,帧间隔加I ;这样就达到了根据实际编码帧率和网络状况,动态调整帧间隔,平滑播放实时视频码流的效果。
[0019]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
【权利要求】
1.一种不依赖时间戳的实时视频码流播放速度控制方法,其特征在于,包括如下步骤: 步骤1、参数设置,视频采集方设置默认的帧间隔为40毫秒;视频接收方设置视频缓冲时间,单位为毫秒,默认为500毫秒; 步骤2、视频帧的接收,视频接收方每收到网络传输的视频帧后,立刻进行解码,将解码后可用于显示的视频帧送入视频帧缓冲队列,视频缓冲帧数加I ;通过当前视频缓冲队列中的视频缓冲帧数乘以帧间隔,计算获得当前的缓冲时间,当缓冲时间大于等于指定的缓冲时间,开始进行视频帧的播放过程; 步骤3、视频帧的播放控制,从缓冲队列中取出的第一个视频帧立刻进行显示,同时记录该帧的显示时间;此后当当前时间距离上一帧的显示时间的差值大于等于帧间隔时,从缓冲队列中取出一帧进行显示,视频缓冲帧数减1,同时记录该帧的显示时间,并对帧间隔进行调整; 步骤4、帧间隔的调整,首先根据设置视频缓冲时间,上下各浮动1/2的范围,作为视频缓冲合理范围;每播放一帧,查询当前视频缓冲队列中的缓冲帧数,缓冲帧数乘以帧间隔,计算获得当前的缓冲时间;如果当前的缓冲时间处于视频缓冲合理范围,则不调整帧间隔;如果当前的缓冲时间大于视频最大缓冲时间,说明当前的播放速度偏慢,应加快播放速度,帧间隔减I ;如果当前的缓冲时间小于视频最小缓冲时间,说明当前的播放速度偏快,应减慢播放速度,帧间隔加I ;这样就达到了根据实际编码帧率和网络状况,动态调整帧间隔,平滑播放实时视频码流的效果。
【文档编号】H04N21/433GK104333795SQ201410612934
【公开日】2015年2月4日 申请日期:2014年11月4日 优先权日:2014年11月4日
【发明者】闫城辉 申请人:北京佳讯飞鸿电气股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1