一种历史码流正向推送的倒放方法技术

技术编号:25002601 阅读:34 留言:0更新日期:2020-07-24 18:03
本发明专利技术公开了一种历史码流正向推送的倒放方法,涉及视频码流倒放及衔接领域,该方法包括:获取当前时间戳,发送历史视频倒放请求;接收倒放码流,当流时间戳小于所述当前时间戳时进行解码;针对需要倒序播放的GOP进行解码,并将解码后的数据信息记录到对应的数据文件中;解码完毕后,倒序获取所述数据文件中的数据信息并依次显示。通过本发明专利技术的实施,无需额外增加进程的内存,提升了性能和稳定性,反向无跳帧、无卡帧及无花屏,同时支持多路高清码流同时倒放。

【技术实现步骤摘要】
一种历史码流正向推送的倒放方法
本专利技术涉及视频码流倒放及衔接领域,尤其涉及一种历史码流正向推送的倒放方法。
技术介绍
随着安防行业应用范围的不断扩大,其业务的大量整合、应用的场景化、多样化以及人工智能的普及,加之人脸识别、语言识别、图像识别等技术在各个领域下与对应业务的结合,这些推送着各种小平台、大中台对于智能化业务的集成及应用。视频数据作为平安城市的主要数据来源之一,对视频数据的分析及应用显得尤为重要。在安防应用领域,尤其是视频联网监控领域,需要对视频数据进行采集并进行对应的结构化分析,提取特定场景下的特定细节,通过这些特定的画面循环反复的预览进行侦查或者破案。现在已有的倒放实现方法主要有:第一种是下级平台支持倒放信令并正确推送指定倒放的视频,这种方案完全依赖于下级平台,如果下级平台不支持,就无法完成历史视频的倒放操作;另一种方案就是通过向下级平台请求视频,将对应的视频缓冲在缓存中,然后通过对缓存中的数据进行编号解码再进行倒序播放,这种方案的弊端在于对系统配置要求较高,且不能同时支持多路高清码流同时倒放,稳定性也会有一定的影响,且倒放过程中内存占用过高。因此,本领域的技术人员致力于开发一种基于历史码流正向推送的倒放方法,无需额外增加进程的内存,提升了性能和稳定性,反向无跳帧、无卡帧及无花屏,同时支持多路高清码流同时倒放。
技术实现思路
有鉴于现有技术的上述缺陷,本专利技术所要解决的技术问题是倒放过程中画面卡段、花屏、跳帧,以及倒放中内存占用过高,内存会根据视频码流的码率及分辨率有大范围的波对,同时无法对多路高清码流实现高效稳定支持。为实现上述目的,本专利技术提供了一种历史码流正向推送的倒放方法,包括:步骤1、获取当前时间戳,发送历史视频倒放请求;步骤2、接收倒放码流,当流时间戳小于所述当前时间戳时进行解码;步骤3、针对需要倒序播放的GOP进行解码,并将解码后的数据信息记录到对应的数据文件中;步骤4、解码完毕后,倒序获取所述数据文件中的数据信息并依次显示。进一步地,所述步骤1包括:所述当前时间戳向前4倍速请求历史视频,时间段为向前1s、2s、4s、8s、16s;所述当前时间戳为当前播放帧的时间戳信息。进一步地,所述步骤4包括:判断所述倒放码流中是否有关键帧,如果有所述关键帧,则从所述关键帧开始缓冲数据,并记录所述关键帧的时间戳信息;当所述流时间戳大于所述当前时间戳时继续进行所述倒放码流的接收。进一步地,所述步骤3包括:创建解码线程;创建解码队列。进一步地,所述解码线程,包括:读取缓冲中离所述当前时间戳最近的一个所述GOP;将解码的数据根据时间戳信息命名缓存到本地磁盘;记录解码后的GOP队列,记录当前所述解码队列的时间戳信息到所述解码队列中。进一步地,所述步骤3还包括:上次请求的所述GOP解码完成,将收流标志位置位;所述收流标志位置位后,开始新一轮的所述接收倒放码流并启动所述解码线程。进一步地,当所述流时间戳大于所述当前时间戳时,所述收流标志位清空,暂停所述接收倒放码流。进一步地,所述步骤4包括:步骤4.1、创建显示线程;步骤4.2、所述显示线程记录当前显示的时间戳信息;步骤4.3、所述显示线程获取所述解码队列中的最后一个时间戳信息,根据此信息从本地磁盘读取对应的YUV数据信息进行显示;步骤4.4、所述显示线程判断所述YUV的缓冲大小是否小于一个所述GOP大小。进一步地,所述步骤4.3包括:如果所述当前时间戳信息和所述解码队列中最后一个时间戳信息差值大于3600,则进行等待;否则获取最后一个数据进行播放。进一步地,所述步骤4.4包括:所述YUV的缓冲大小小于一个所述GOP大小,依次显示所述解码队列中的时间戳对应的视频帧,同步更新所述当前显示时间戳信息;所述YUV的缓冲大小大于一个所述GOP大小,重新获取所述解码队列中的最后一个时间戳信息,并根据此信息从本地磁盘读取对应的YUV数据信息进行显示。与现有技术相比,本专利技术至少具有如下有益技术效果:1、解决了倒放过程中跳帧、卡顿及花屏的问题;2、倒放过程中将对应的解码图片存储到磁盘上,无需对内存进行操作,提升了稳定性及性能;3、多路高清变码率视频支持对进程占用的内存不影响,高效的支持了多路倒放。以下将结合附图对本专利技术的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本专利技术的目的、特征和效果。附图说明图1是本专利技术的步骤流程图;图2是本专利技术的倒放流程图;图3是本专利技术的整体框架图;图4是本专利技术的主要业务流程图;图5是本专利技术的整体流程图;图6是本专利技术的数据队列数据结构;图7是本专利技术的解码队列数据结构;图8是本专利技术的GOP队列数据结构。具体实施方式以下参考说明书附图介绍本专利技术的多个优选实施例,使其
技术实现思路
更加清楚和便于理解。本专利技术可以通过许多不同形式的实施例来得以体现,本专利技术的保护范围并非仅限于文中提到的实施例。在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本专利技术并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。如图1所示,本专利技术的步骤流程包括:步骤101,获取当前时间戳,发送历史视频倒放请求。其中,当前时间戳向前4倍速请求历史视频,时间段为向前1s,2s,4s,8s,16s,以便减少下级平台信令压力,同时确保本地有足够的缓冲数据确保画面连续播放。步骤102,接收倒放码流,当流时间戳小于所述当前时间戳时进行解码。步骤103,针对需要倒序播放的GOP进行解码,并将解码后的数据信息记录到对应的数据文件中。将请求的视频进行解码并将解码后的图片按照一定的规则存在指定磁盘上对应通道的文件夹下。倒放过程中根据磁盘存储帧的情况进行码流的同步请求和缓冲帧的更新,根据下级平台推送码流的帧的时间戳进行衔接,对小于当前时间戳的帧保存到磁盘和对应的队列中。步骤104,解码完毕后,倒序获取所述数据文件中的数据信息并依次显示。播放的时候根据当前队列的时间戳信息进行倒序播放。如图2所示,本专利技术的倒放流程包括:步骤201,判断收流标志是否为1。步骤202,接受数据并解析,存原始数据缓冲并记录当前时间戳信息,根据解析将数据GOP信息保存到队列,包括GOP序号、帧序号。步骤203,判断流时间戳是否大于当前时间戳。如果是,则步骤204,如果否,则步骤205。步骤204,收流标志清空,暂停收流,更新当前时间戳,记录当前GOP序号、GOP大小。步骤205,解码线程读取原始数据,根据当前GOP序号获取GO本文档来自技高网
...

【技术保护点】
1.一种历史码流正向推送的倒放方法,其特征在于,包括:/n步骤1、获取当前时间戳,发送历史视频倒放请求;/n步骤2、接收倒放码流,当流时间戳小于所述当前时间戳时进行解码;/n步骤3、针对需要倒序播放的GOP进行解码,并将解码后的数据信息记录到对应的数据文件中;/n步骤4、解码完毕后,倒序获取所述数据文件中的数据信息并依次显示。/n

【技术特征摘要】
1.一种历史码流正向推送的倒放方法,其特征在于,包括:
步骤1、获取当前时间戳,发送历史视频倒放请求;
步骤2、接收倒放码流,当流时间戳小于所述当前时间戳时进行解码;
步骤3、针对需要倒序播放的GOP进行解码,并将解码后的数据信息记录到对应的数据文件中;
步骤4、解码完毕后,倒序获取所述数据文件中的数据信息并依次显示。


2.如权利要求1所述的历史码流正向推送的倒放方法,其特征在于,所述步骤1包括:
所述当前时间戳向前4倍速请求历史视频,时间段为向前1s、2s、4s、8s、16s;
所述当前时间戳为当前播放帧的时间戳信息。


3.如权利要求1所述的历史码流正向推送的倒放方法,其特征在于,所述步骤2包括:
判断所述倒放码流中是否有关键帧,如果有所述关键帧,则从所述关键帧开始缓冲数据,并记录所述关键帧的时间戳信息;
当所述流时间戳大于所述当前时间戳时继续进行所述倒放码流的接收。


4.如权利要求1所述的历史码流正向推送的倒放方法,其特征在于,所述步骤3包括:
创建解码线程;
创建解码队列。


5.如权利要求4所述的历史码流正向推送的倒放方法,其特征在于,所述解码线程,包括:
读取缓冲中离所述当前时间戳最近的一个所述GOP;
将解码的数据根据时间戳信息命名缓存到本地磁盘;
记录解码后的GOP队列,记录当前所述解码队列的时间戳信息到所述解码队列中。


6.如权利要求5所述的历史码流正向...

【专利技术属性】
技术研发人员:王丹师少飞刘其峰王小虎王继能
申请(专利权)人:上海熙菱信息技术有限公司
类型:发明
国别省市:上海;31

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

1