基于h264编码的海量视频数据的存储及检索方法

文档序号:7782316阅读:1251来源:国知局
基于h264编码的海量视频数据的存储及检索方法
【专利摘要】本发明公开一种基于h264编码的海量视频数据的存储及快速检索方法,其通过将I帧与P帧独立存储,分解录像视频,并建立I帧索引,大大提高了海量视频文件的存储及对其进行实时回放时检索和快速定位的效率。
【专利说明】基于h264编码的海量视频数据的存储及检索方法
【技术领域】
[0001]本发明涉及视频监控领域,特别涉及一种基于H264编码的海量视频数据的存储方法及其对应的检索方法。
【背景技术】
[0002]传统的录像存储技术采用集中式混帧存储方式,从各个前端采集视频码流以半个小时或一个小时产生一个文件的方式集中存储,然后通过具体的请求具体文件逐帧播放的方式进行检索。
[0003]传统文件存储由于采用的集中式统一存储方式,可以便于文件统一管理及检索,但同时它也具有很大的局限性,比如:
[0004]1、集中存储时,中心网络承受的巨大的压力;
[0005]2、文件以半个小时或一个小时存储时,拖拽显示视频时响应速度慢;
[0006]3、当录像文件存储大时,关键帧检索时,检索效率极其低下;
[0007]4、在客户端快速回放时,需要同时处理P帧数据;
[0008]5、多个客户端并发请求同一个文件时,处理极其低下。
[0009]这些问题在海量数据时会更加突出,所以急需解决。

【发明内容】

[0010]本发明提供一种基于h264编码的海量视频文件的存储和检索方法,可以提高实时回放、并发请求及关键帧的检索效率。
[0011]一种基于h264编码的海量视频文件的存储方法,通过以下步骤实现:
[0012]SI,主控服务端获取录像计划,并在存储模块保存当前计划;
[0013]S2,通过计划向指定的视频源请求视频码流;
[0014]S3,获取完整视频巾贞后,检测是否为I巾贞;
[0015]S4,如果检测到视频帧为I帧,将I帧放入I帧存储队列中,并用I帧的时间戳建立一个P帧的存储队列,将接下来的所有P帧放入此存储队列中;
[0016]S5,在存储了多个I帧时,将I帧数据一次性写入I帧文件中,对应的P帧队列中所有数据写入P帧文件中,P帧文件按I帧的时间戳存储;
[0017]S6,每个I帧的帧索引全部写入I帧索引文件中,P帧的帧索引写入P帧索引文件中;
[0018]S7,每一定时间产生一个I帧序列文件,将此文件的I帧索引信息上传至主控服务器。
[0019]优选的,所述的S7中的一定时间为半个小时。
[0020]一种基于h264编码的海量视频数据的存储方法的检索方法,通过以下步骤实现:
[0021]SI,客户端发出实时回放请求,将请求的摄像头编码发送到主控服务端;
[0022]S2,主控服务端实时检索本地的文件索引,将文件位置和录像与回放服务端的IP返回给客户端;
[0023]S3,客户端根据文件位置及录像与回放服务端的IP请求文件播放。
[0024]一种基于h264编码的海量视频数据的存储方法的检索方法,通过以下步骤实现:
[0025]SI,客户端请求I帧索引数据按指定时间进行绘图;
[0026]S2,凭借客户端绘图的I帧索引数据向主控服务端发起申请;
[0027]S3,主控服务端通过文件索引检索到存储服务端IP及位置,并将检索到的存储服务端IP及位置信息返回给客户端;
[0028]S4,客户端通过主控服务端返回的文件位置及绘图的帧索引向录像和回放服务端请求指定I帧或P帧;
[0029]S5,存储服务端通过文件位置获取本地指定的文件帧索引数据,并进行序列化;
[0030]S6,将读取到的指定的帧数据回调给客户端。
[0031]以上实现的基于h264编码的海量视频文件的存储和检索方法,通过将I帧索引与I帧分开存储,I帧与P帧相互独立存储,分解录像计划,大大提高了海量视频文件的存储及对其进行实时回放、快速定位的检索效率。
【专利附图】

【附图说明】
[0032]图1为存储方法及实时回放检索的实现过程示意图;
[0033]图2为快速检索的实现过程示意图。
[0034]
【发明内容】

[0035]以下将结合附图对本发明的存储方法及检索方法进行详细描述。如图1所示:基于h264编码的海量视频文件的存储方法及实时回放检索实现过程为,主控服务端获取录像计划,并将所述的录像计划保存在存储模块;通过所述的录像计划向指定的流媒体服务端请求视频码流;具体来讲,主控服务端从系统数据库获得录像计划,将录像计划发送到录像与回放服务端,录像与回放服务端对录像计划进行分解后等待接收码流以便进行录像;与此同时,主控服务端向流媒体服务端发送开启指定摄像机的指令,流媒体服务端打开摄像机,获取码流;等待到计划时间节点后,录像与回放服务端向流媒体服务端请求码流。
[0036]存储服务端获取完整视频帧后,实时检测码流是否为I帧;在检测第一帧非I帧的情况下,将不予保留,直到检测到第一帧为I帧后,将I帧放入I帧存储队列中,并用I帧的时间戳建立一个P帧的存储队列,将接下来的P帧存储到前面按I帧的时间戳建立的P帧队列中;在存储了多个I帧时,将I帧数据一次性写入I帧文件中,对应的P帧队列中所有数据写入P帧文件中;每个I帧的帧索引全部写入I帧索引文件中,P帧的帧索引写入P帧索引文件中,达到索引分类存储的目的;每过一定时间产生一个文件,优选为半个小时产生一个文件,然后将此文件的I帧索引信息上传至主控服务器。
[0037]当客户端发起实时回放的请求,则将请求的摄像头编码发送到主控服务端;主控服务端实时检索本地的文件索引,将文件位置、录像与回放服务端的IP反馈给客户端;客户端则根据文件位置及录像与回放服务端的IP执行文件播放,完成录像回放。
[0038]如果客户端发起的是快速检索的请求,则客户端请求I帧索引数据,按指定时间进行绘图,即绘制时间戳控件;凭借客户端绘图的I帧索引数据向主控服务端发起申请;主控服务端通过文件索引检索到存储服务端IP及位置,并将检索到的存储服务端IP及位置信息返回给客户端;客户端根据主控服务端返回的文件位置及绘图的帧索引向录像与回放服务端请求指定I帧或P帧;然后存储服务端通过文件位置获取本地指定的帧索引数据,然后进行序列化并将读取到指定的帧数据反馈给客户端。
[0039]更具体来讲,如图2所示:客户端向主控服务端获取单个文件信息,主控服务端检索本地文件索引位置,将获取的录像和回放服务端的IP、录像文件位置反馈回客户端,客户端通过反馈回来的文件信息,即录像和回放服务端的IP、录像文件位置信息,向指定IP的录像和回放服务端获取I帧索引信息,即单个文件帧总数,然后客户端通过指定时间段从存储服务端获取到I帧的文件列表信息,并根据I帧索引信息绘制时间戳控件。然后客户端发起请求指定I帧所属文件位置,主控服务端检索本地索引,返回文件信息及IP,客户端根据指定I帧索引,录像与回放服务端检索本地帧文件索引,获取指定位置,读取到相关数据,返回I帧数据给客户端进行解码显示,并通过该I帧索引获取关联P帧数据队列继续播放。
[0040]通过以上方法实现的存数方法及相应的检索方法,可以使用户提高实时回放、关键帧快速预览的检索效率。
【权利要求】
1.一种基于h264编码的海量视频数据的存储方法,其通过以下步骤实现: SI,主控服务端获取录像计划,并在其存储模块保存当前计划; S2,通过计划向指定的视频源请求视频码流; S3,获取完整视频帧后,检测是否为I帧; S4,如果检测到视频帧为I帧,将I帧放入I帧存储队列中,并用I帧的时间戳建立一个P帧的存储队列,将接下来的所有P帧放入此存储队列中; S5,在存储了多个I帧时,将I帧数据一次性写入I帧文件中,对应的P帧队列中所有数据写入P帧文件中,P帧文件按I帧的时间戳存储; S6,每个I帧的帧索引全部写入I帧索引文件中,P帧的帧索引写入P帧索引文件中; S7,每一定时间产生一个I帧序列文件,将此文件的I帧索引信息上传至主控服务器。
2.根据权利要求1所述的视频文件的存储方法,其特征在于:所述的S7中的一定时间为半个小时。
3.一种基于权利要求1所述的存储方法的检索方法,包括以下步骤: Si,客户端发出实时回放请求,将请求的摄像头编码发送到主控服务端; S2,主控服务端实时检索本地的文件索引,将文件位置、录像和回放服务端IP返回给客户端; S3,客户端通过文件位置及录像和回放服务端的IP请求文件播放。
4.一种基于权利要求1所述的存储方法的检索方法,包括以下步骤: SI,客户端请求I帧索引数据按指定时间进行绘图; S2,凭借客户端绘图的I帧索引数据向主控服务端进行申请; S3,主控服务端通过文件索引检索到存储服务端IP及录像文件位置,并将检索到的存储服务端IP及录像文件位置信息返回给客户端; S4,客户端通过主控服务端返回的文件位置及绘图的帧索引向录像和回放服务端请求指定I帧或P帧; S5,存储服务端通过文件位置获取本地指定的文件帧索引数据,并进行序列化; S6,将读取到的指定的帧数据回调给客户端。
【文档编号】H04N7/18GK103780877SQ201310733422
【公开日】2014年5月7日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】罗胜朋, 范文林 申请人:深圳市华仁达技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1