一种网络图像或视频的存储方法

文档序号:7697179阅读:211来源:国知局

专利名称::一种网络图像或视频的存储方法
技术领域
:本发明涉及一种用于存储某些型号网络摄像机产生的图像/视频数据的技术,特别涉及一种网络图像/视频的存储方法。
背景技术
:随着网络技术的发展,基于IP网络的图像/视频监控逐渐成为安防领域发展的一个热点。利用现有的IP宽带网络,可以实现在现有IP网络上传输图像/视频数据,而不用建设单独的线路。但是某些型号的网络摄像机只能在摄像机内部的存储介质上保存图像/视频数据,而不能在客户端实现数据的实时存储。在摄像机内部的介质上存储数据存在容量方面的限制,并且不能实时将数据进行转存。因此,现有技术存在缺陷,有待改进和发展。
发明内容本发明的目的在于提供一种计算机端的网络摄像机图像/视频数据实时存储方法,通过对传输过程中网络报文的分析,根据协议规格将其中的图像/数据提取并保存下来,同时可以进行后续的识别、告警等操作。本发明通过以下技术手段来实现本发明方法在运行网络摄像机客户端软件的计算机上同时设置一个报文截获模块和处理模块,从而实现网络报文截获和处理两大基本功能。其中,报文截获模块基于第三方报文截获插件实现,比如windows平台的wi即c即插件或者li皿x平台的libpcap插件。在计算机上安装相应的报文截获插件,调用插件提供的函数接口,可以实时截获经过本地计算机的所有网络报文,并且将截获的网络报文放入自定义的缓冲区中。另外,处理模块从缓冲区中提取每条报文,并根据图像/视频流的格式标准将相关的图像/视频提取出来并保存到磁盘上供后续处理与应用。同时也可以将产生的图像/视频数据进行实时处理,进行图像识别、告警等后续操作。本发明提供的基于计算机的实时图像/视频存储方法可以弥补某些型号网络摄像机的在计算机端数据存储、图像/视频处理方面的缺陷。可以将网络摄像机产生的图像/视频数据实时截获并存储下来,并可以连接其它的处理模块进行后续识别、告警等操作。以下结合附图和具体实施方式来进一步说明本发明。图1为本发明方法在实施例中所述的计算机和网络摄像机的连接图;图2为本发明方法在实施例中所述的相关配置界面的示意图;图3为本发明方法在实施例中所述的报文截获处理程序整体结构框图4为本发明方法在实施例中所述的JPEG图像传输格式框图;图5为本发明方法在实施例中所述的MPEG4图像传输格式框具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。根据上述技术方案,下面以松下公司生产的WV-NP304型网络摄像机为例,说明如何在windows平台上实现图像/视频数据的存储与后续处理。WV-NP304型网络摄像机提供了一套基于浏览器的客户端软件,但是在计算机端没有提供实时存储图像/视频及处理功能。参见图l,显示了计算机和网络摄像机之间的连接方法,中间可以通过多个路由器或者交换机进行连接。在计算机端打开浏览器并输入摄像机的地址后可以看到摄像机产生的视频数据。在该计算机上安装winpc即报文截获插件,并启动报文截获/处理程序。程序在启动时需要选择当前用于截获报文的网络接口及产生数据的保存路径,如图2所示整个程序除了主程序以外由三个部分组成报文截获线程、缓冲区和处理线程。程序的整体结构如图3所示主程序在启动以后首先初始化一个环形缓冲区,每个节点具有如下的数据结构<table>tableseeoriginaldocumentpage4</column></row><table>主程序维持两个指针,分别是<table>tableseeoriginaldocumentpage4</column></row><table>这两个指针分别用来指向缓冲区数据的头部和尾部。当头部的下一个节点是尾部时,说明整个缓冲区已满,不能再向缓冲区添加数据。当尾部的下一个节点为头部时,说明整个缓冲区已空,不能再提供数据用于处理了。主程序完成环形缓冲区的建立以后启动两个独立的线程截获线程和处理线程。截获线程调用winpcap提供的编程接口,将经过指定网络接口的所有报文过滤以后存放到缓冲区中。可以基于IP地址以及网络端口等信息设置过滤原则。如果缓冲区中存在可以处理的报文,那么处理线程根据网络摄像机提供的协议规格,分析并处理该报文。WV-NP304型网络摄像机以两种方式传输报文以HTTP报文的形式传输JPEG图像(该传输格式参见图4),以RTP报文的形式传输MPEG4视频(该传输格式参见图5)。其中JPEG图像作为HTTP报文的内容出现,在数据流中以0xFFD8作为开始标志,以0xFFD9作为结束标志;可以通过有限状态自动机的方式从HTTP数据流中分析出图像的内容并保存下来。MPEG4码流作为RTP报文的数据出现,可以直接进行拼接操作。可以采用指针偏移的方式分析报文的内容,如下面的代码所示u_char*pkt_data;〃整个以太网报文的首地址IP_HEADER*plp_hdr;〃指向IP头部的指针TCP_HDR*pTcp_hdr;〃指向TCP头部的指针UDP_HEADER*pUdp_hdr;〃指向UDP头部的指针〃初始化IP头部指针plp_hdr=(IP_HEADER*)(pkt_data+sizeof(ETHERNET_FRAME));〃判断具体的传输层协议,并调用具体的解码函数if(IPPROTO—TCP==pIp_hdr->protocol)〃初始化TCP头结构、TCP数据部分指针pTcp_hdr=(TCP_HDR*)(pkt_data+sizeof(ETHERNET_FRAME)+4*(pIp—hdr-〉x&OxOF));pApp—data=(u_char*)(pkt_data+sizeof(ETHERNET—FRAME)+4*(pIp_hdr->x&OxOF)+4*((pTcp_hdr_>hdr_len》4)&OxOF));〃计算应用部分数据的长度applen=(u_short)(ntohs(plp_hdr_>length)-4*(pIp_hdr_>x&OxOF)-4*((pTcp_hdr->hdr_len》4)&OxOF));〃根据目标端口号和源端口号判断报文是否为HTTP报文,所有的JPEG数据都包含在服务器发送给客户端的报文中if(IPPORT—HTTP==ntohs(_hdr->src_portno))〃具体的HTTP报文处理}〃endofif(IPPORT—HTTP==ntohs(pTcp_hdr->src_portno))elseif(IPPR0T0_UDP==plp_hdr-〃初始化UDP头结构、UDP数据部分指针pUdp_hdr=(UDP_HEADER*)(pkt_data+sizeof(ETHERNET_FRAME)+4*(pIp—hdr-〉x&OxOF));pApp—data=(u_char*)(pkt_data+sizeof(ETHERNET—FRAME)+4*(pIp_hdr->x&0x0F)+8);〃计算应用部分数据的长度applen=(u_short)(ntohs(plp_hdr_〉length)_4*(pIp_hdr_〉x&OxOF)-8);〃具体的RTP报文处理}〃endofif(IPPR0T0_TCP==pIp_hdr_>protocol)完成报文的分析以后可以直接将结果保存到本地磁盘或者进行后续的图像识别、告警等操作。可以使用本专利的方法分析其它型号网络摄像机产生的数据流,只是在具体数据流的格式上会存在细微差别。以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。权利要求一种网络图像或视频的存储方法,其特征在于,在运行网络摄像机客户端软件的计算机上同时设置一个报文截获模块和处理模块;所述报文截获模块基于第三方报文截获插件实现,通过调用插件提供的函数接口,可以实时截获经过本地计算机的所有网络报文,并且将截获的网络报文放入自定义的缓冲区中;所述处理模块从缓冲区中提取每条报文,并根据图像/视频流的格式标准将相关的图像/视频提取出来并保存到磁盘上供后续处理与应用;同时也将产生的图像/视频数据进行实时处理,进行图像识别、告警等后续操作。2.根据权利要求1的网络图像或视频的存储方法,其特征在于,所述第三方报文截获插件为windows平台的winpcap插件或者linux平台的libpcap插件。全文摘要本发明公开了一种网络图像/视频的存储方法。该方法主要是在运行网络摄像机客户端软件的计算机上同时设置一个报文截获模块和处理模块;所述报文截获模块基于第三方报文截获插件实现,通过调用插件提供的函数接口,可以实时截获经过本地计算机的所有网络报文,并且将截获的网络报文放入自定义的缓冲区中;所述处理模块从缓冲区中提取每条报文,并根据图像/视频流的格式标准将相关的图像/视频提取出来并保存到磁盘上供后续处理与应用;同时也将产生的图像/视频数据进行实时处理,进行图像识别、告警等后续操作。文档编号H04N7/24GK101783936SQ20091005102公开日2010年7月21日申请日期2009年5月12日优先权日2009年5月12日发明者高军申请人:上海海事大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1