一种视频预录方法及装置与流程

文档序号:12627562阅读:1051来源:国知局
一种视频预录方法及装置与流程

本发明涉及视频数据存储技术领域,具体涉及一种视频预录方法及装置。



背景技术:

视频监控是安防系统的重要组成部分,通过视频监控可以有效地减少社会维护治安的成本,视频监控已经广泛应用到各个领域中;其中,视频预录是视频监控中的重要技术,通过视频预录能达到监控的目的。

视频预录实现过程中,通过视频预录队列存储视频帧数据,其中,所述视频帧数据包括I帧,P+帧和P帧三种类型的视频帧数据,所述视频预录队列采用环形队列数据结构存储上述三种类型的视频帧数据。当预录事件发生时,根据设定的预录时间,在预录队列中查找符合预录时间的第一个I帧,将此I帧及其后的视频帧写入录像文件中,实现视频预录。

若码流为0.5MB/s,画面组(Group of Pictures,Gop)为750,每秒传输帧数(Frames Per Second,fps)为25,则每30s会存在一个I帧,而预录队列只能保存14s的数据,这就意味着预录队列在相当长的一段时间(16s)内是没有I帧的,此时若预录事件发生,则会因为预录队列在预录时间内缺少I帧,导致预录时间内的视频数据无法解码,使得预录时间内的视频帧数据无法写入录像文件,导致预录失败。



技术实现要素:

本发明的目的是提供一种视频预录方法及装置,以解决在预录时间内预录队列缺少I帧而导致的预录无效问题。

本发明的目的是通过以下技术方案实现的:

一种视频预录方法,包括:

确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧;

依据预先创建的I帧队列中存储的I帧进行视频预录。

较佳的,所述预先创建的I帧队列中存储的I帧为所述视频预录队列中调整出队的I帧。

较佳的,依据预先创建的I帧队列中存储的I帧进行视频预录之前,具体包括:

确定所述视频预录队列中即将出队的数据帧为I帧的情况下,清空所述预先创建的I帧队列,并将所述视频预录队列中即将出队的I帧写入清空后的所述I帧队列中。

较佳的,所述依据预先创建的I帧队列中存储的I帧进行视频预录,包括:

根据所述预先创建的I帧队列中存储的I帧,在所述视频预录队列中确定符合预录时间的第一个P+帧;

创建录像文件,所述录像文件的名称根据所述P+帧中的时间戳确定;

在创建的所述录像文件中写入预录时间内的视频帧。

较佳的,所述在创建的所述录像文件中写入预录时间内的视频帧,包括:

若确定所述视频预录队列中存储的视频帧发生变化,判断变化后的视频预录队列中是否存在I帧;

若所述变化后的视频预录队列中存在I帧,则将所述视频预录队列中的I帧及其所述I帧之后的视频帧,写入所述录像文件;

若所述变化后的视频预录队列中不存在I帧,则将所述预先创建的I帧队列中的I帧、所述视频预录队列中所述P+帧、以及所述视频预录队列中所述P+帧之后的视频帧,写入所述录像文件。

一种视频预录装置,包括:

确定单元,用于确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧;

预录单元,用于在所述确定单元确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧情况下,依据预先创建的I帧队列中存储的I帧进行视频预录。

较佳的,所述预先创建的I帧队列中存储的I帧为所述视频预录队列中调整出队的I帧。

较佳的,所述预录单元,还用于:

在依据预先创建的I帧队列中存储的I帧进行视频预录之前,确定所述视频预录队列中即将出队的数据帧为I帧的情况下,清空所述预先创建的I帧队列,并将所述视频预录队列中即将出队的I帧写入清空后的所述I帧队列中

较佳的,所述预录单元,具体采用如下方式依据预先创建的I帧队列中存储的I帧进行视频预录:

根据所述预先创建的I帧队列中存储的I帧,在所述视频预录队列中确定符合预录时间的第一个P+帧;

创建录像文件,所述录像文件的名称根据所述P+帧中的时间戳确定;

在创建的所述录像文件中写入预录时间内的视频帧。

较佳的,所述预录单元,具体采用如下方式在所述录像文件中写入预录时间内的视频帧:

若确定所述视频预录队列中存储的视频帧发生变化,判断变化后的视频预录队列中是否存在I帧;

若所述变化后的视频预录队列中存在I帧,则将所述视频预录队列中的I帧及其所述I帧之后的视频帧,写入所述录像文件;

若所述变化后的视频预录队列中不存在I帧,则将所述预先创建的I帧队列中的I帧、所述视频预录队列中所述P+帧、以及所述视频预录队列中所述P+帧之后的视频帧,写入所述录像文件。

本发明实施例中,预先创建I帧队列,在确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧情况下,依据预先创建的I帧队列中存储的I帧进行视频预录,将预先创建的I帧队列中存储的预录时间内的I帧写入预录文件,实现预录,避免了在预录时间内预录队列缺少I帧而导致预录无效的现象发生。

附图说明

图1为本发明实施例提供的一种视频预录方法的流程图;

图2为本发明实施例中提供的另一种视频预录方法的流程图;

图3为本发明实施例提供的在所述录像文件中写入预录时间内的视频帧数据的流程示意图;

图4为本发明实施例提供的写入预录数据以及实时数据的过程示意图;

图5为本发明实施例中实时录像数据写入录像文件的流程图;

图6为本发明实施例中视频预录队列环形存储结构示意图;

图7A为本发明实施例提供的创建I帧队列的流程示意图;

图7B为本发明实施例提供的I帧队列环形存储结构示意图;

图8为本发明实施例提供的视频预录装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。

为了解决视频预录在预录时间内预录队列缺少I帧而导致的预录无效问题,本发明实施例中可预先创建I帧队列,在确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧情况下,依据预先创建的I帧队列中存储的I帧进行视频预录。

图1所示为本发明实施例提供的一种视频预录的实现方法流程图,如图1所示,包括:

S101:确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧。

S102:依据预先创建的I帧队列中存储的I帧进行视频预录。

本发明实施例中,预先创建I帧队列,在确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧情况下,依据预先创建的I帧队列中存储的I帧进行视频预录,将预先创建的I帧队列中存储的预录时间内的I帧数据写入预录文件,实现预录,避免了在预录时间内预录队列缺少I帧而导致预录无效的现象发生。

本发明实施例以下将结合实际应用对上述实施例涉及的视频预录方法进行详细的说明。

图2所示为本发明实施例提供的视频预录的另一种实施流程图,如图2所示,包括:

S201:若确定所述视频预录队列中存储的视频帧发生变化,则判断变化后的视频预录队列是否有符合预录时间的I帧。

本发明实施例中,当有预录事件发生时,确定需要进行视频预录。在确定需要进行视频预录时,若确定所述视频预录队列中存储的视频帧发生变化,则判断变化后的视频预录队列是否有符合预录时间的I帧,其中,所述预录时间可以是预先设定的。

如果所述视频预录队列有符合所设定预录时间的I帧,则执行S202。如果所述视频预录队列没有符合所设定预录时间的I帧,则执行S203。

S202:在所述视频预录队列中确定符合预录时间的第一个I帧。

S203:在所述视频预录队列中确定符合预录时间的第一个P+帧。

S204:根据确定的I帧或P+帧,获取所述确定的I帧或所述P+帧中的时间戳。

S205:创建录像文件,所述录像文件的名称根据所述确定的I帧或所述P+帧中的时间戳确定。

S206:在所述录像文件中写入预录时间内的视频帧,进行视频预录。

一种实施方式中,在所述录像文件中写入预录时间内的视频帧,可采用如图3所示的方式,包括:

S2061:若确定所述视频预录队列中存储的视频帧发生变化,判断变化后的视频预录队列中是否存在I帧。

S2062:若所述变化后的视频预录队列中存在I帧,则将所述视频预录队列中的I帧及其所述I帧之后的视频帧,写入所述录像文件。

S2063:若所述变化后的视频预录队列中不存在I帧,则将所述预先创建的I帧队列中的I帧、所述视频预录队列中所述P+帧、以及所述视频预录队列中所述P+帧之后的视频帧,写入所述录像文件。

本发明实施例通过上述方式可将预录时间内的预录数据写入到录像文件中。在实际应用中,事件录像包含两部分数据,一部分为预录数据,另一部分为事件发生后的实时数据,换言之,录像文件创建完成后,首先将预录时间内的视频帧数据写入所述创建的录像文件中,然后写入实时数据,如图4所示。

本发明实施例中,写入实时数据到录像文件的过程可参阅图5所示的流程,如图5所示,包括:

S401:从所述视频预录队列获取视频帧数据。

S402:判断所述视频帧数据是否有效;若所述视频帧数据有效,则执行S403,若所述视频帧数据无效,则重新开始写录像文件。

S403:将所述视频帧数据写入所述录像文件中。

S404:判断录像是否停止,若录像停止则完成录像,若录像没停止,则重新开始写录像文件。

本发明实施例中为保证进行视频预录时能够获取到I帧,可预先创建I帧队列。

目前,视频预录队列一般采用环形队列数据结构存储视频帧,如图6所示,采用环形队列数据结构存储视频帧数据时,队头指针指向当前视频预录队列中最先存储的视频帧,队尾指针指向待插入的视频帧所在队列的位置。当预录队列满时,采用先进先出的原则调整预录队列,将队头指针所指的视频帧调整出队,即图6中队头指针所指向位置的视频帧出队,故,进行视频预录队列调整时,会将I帧调整出队。本发明实施例中可利用所述视频预录队列中调整出队的I帧,创建I帧队列,以使I帧队列中存储的I帧为所述视频预录队列中调整出队的I帧,提高视频预录的准确性。

进一步的,本发明实施例中为保证视频预录过程中从I帧队列获取的I帧为最新的I帧,可在确定所述视频预录队列中即将出队的数据帧为I帧的情况下,清空所述预先创建的I帧队列,并将所述视频预录队列中即将出队的I帧写入清空后的所述I帧队列中。

图7A所示为本发明实施例提供的一种创建I帧队列的实施流程图,如图7A所示,包括:

S301:创建视频预录队列,并判断视频预录队列是否已满,在视频队列已满的情况下,执行S302,在视频预录队列未满的情况下,则继续编码并将编码得到的视频帧插入到视频预录队列中。

S302:调整视频预录队列中队头指针所指向位置的视频帧出队,判断即将出队的视频帧是否为I帧,若即将出队的视频帧为I帧,则执行S303,若即将出队的视频帧不是I帧,则执行S304。

S303:清空所述预先创建的I帧队列,并将所述视频预录队列中即将出队的I帧写入清空后的所述I帧队列中。

S304:视频预录队列调整出队视频帧。

通过图7A所示的方法,可完成I帧队列的预创建。

本发明实施例中预先创建的I帧队列也可采用环形队列数据结构存储I帧,并实时对所述I帧队列进行出队调整,如图7B所示,以保证所述I帧队列中只保存最近一次从视频预录队列中调整出队的I帧。

基于上述实施例提供的视频预录方法,本发明实施例还提供一种视频预录装置。

图8所示的实施例中,提供了一种视频预录装置,所述预录装置包括:

确定单元101,用于确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧。

预录单元102,用于在所述确定单元101确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧情况下,依据预先创建的I帧队列中存储的I帧进行视频预录。

较佳的,所述预录单元102,还用于:

在依据预先创建的I帧队列中存储的I帧进行视频预录之前,确定所述视频预录队列中即将出队的数据帧为I帧的情况下,清空所述预先创建的I帧队列,并将所述视频预录队列中即将出队的I帧写入清空后的所述I帧队列中

较佳的,所述预录单元102,具体采用如下方式依据预先创建的I帧队列中存储的I帧进行视频预录:

根据所述预先创建的I帧队列中存储的视频帧数据,在所述视频预录队列中确定符合预录时间的第一个P+帧;

创建录像文件,所述录像文件的名称根据所述P+帧中的时间戳确定;

在创建的所述录像文件中写入预录时间内的视频帧。

较佳的,所述预录单元102,具体采用如下方式在所述录像文件中写入预录时间内的视频帧:

若确定所述视频预录队列中存储的视频帧发生变化,判断变化后的视频预录队列中是否存在I帧;

若所述变化后的视频预录队列中存在I帧,则将所述视频预录队列中的I帧及其所述I帧之后的视频帧,写入所述录像文件;

若所述变化后的视频预录队列中不存在I帧,则将所述预先创建的I帧队列中的I帧、所述视频预录队列中所述P+帧、以及所述视频预录队列中所述P+帧之后的视频帧,写入所述录像文件。

本发明实施例提供的视频预录装置,在确定需要进行视频预录且视频预录队列中不存在符合预录时间的I帧情况下,依据预先创建的I帧队列中存储的I帧进行视频预录,将预先创建的I帧队列中存储的预录时间内的I帧数据写入预录文件,实现预录,避免了在预录时间内预录队列缺少I帧而导致预录无效的现象发生。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1