专利名称:基于浏览器的智能网络视频监控系统及其工作方法
技术领域:
本发明涉及安防领域,特别涉及基于浏览器的智能网络视频监控技术。
背景技术:
伴随着计算机网络、存储、芯片技术的发展,视频监控技术向着智能化、网络化的方向不断前进,视频监控系统已进入智能网络系统(Intelligent Video Surveillance,简称“IVS”)时代。它采用分布方式架设在网络上,不受地域空间的限制,实现视频资源的管理、传输、存储、报警、集成等。由于网络访问能力的不断增强,以及瘦客户端访问便捷的优势,IVS 又由 C/S (Client/Server)向 B/S (^Browser/Server)架构逐渐演变。对于 B/S 架构的视频监控客户端的用户,只要能够接入网络并具有权限,即可实现对存储或监控设备的访问。这种访问是透明的,甚至无需关注交互的设备具体是数字硬盘录像机DVR还是网络视频录像机NVR、网络视频服务器DVS亦或网络摄像机IPC。
用户借助浏览器,通过页面控制网络上的IP设备;浏览器又借助插件,实现页面难以完成的视频采集、播放、录像、绘制等操作。浏览器与页面的交互通常以 JavaScript (JS)等脚本语言编写。JS难以实施同时对效率要求较高的取流、播放等工作, 则可通过C++等编译语言生成的插件达成。JS跨平台的特性使其在不同操作系统中,对页面的访问方式一致。但对于插件,由于(I)编译器的平台依赖性,⑵需与操作系统(OS) 和浏览器间进行交互,因此不同的OS和浏览器间的差异,导致在不同环境下插件的实现框架及方法各不相同。
目前的插件开发技术大多是基于IE等Windows系统中的浏览器。Linux系统开放性、稳定性、成本低的特点,其普及程度逐年上升,尤其在视频监控领域占有重要地位。本发明的发明人发现,现有技术中,主要存在以下几个问题=(I)Linux系统浏览器插件技术的框架及实现方法鲜有提及;(2)由于Linux的开放性,其发行版众多、更新频繁,最基础的窗体管理器(WM)也分为GNOME和KDE两大阵营,以及近来越来越多的浏览器厂商涉入,都给插件开发的普适性带来困难;(3)视频监控的目的必然要求插件在Linux中具有可视化及交互能力。
因此,在Linux系统中,能够跨越不同发行版本、不同浏览器的智能网络视频监控通用插件的系统框架及方法急切所需。发明内容
本发明的目的在于提供一种基于浏览器的智能网络视频监控系统及其工作方法, 使监控视频的播放可以跨越Linux的不同发行版本和不同浏览器。
为解决上述技术问题,本发明的实施方式公开了一种基于浏览器的智能网络视频监控系统,包括,
页面交互单元,用于与页面脚本交互,并将信息传递给浏览器交互单元,同时屏蔽浏览器间的大部分差异;
浏览器交互单元,用于与浏览器交互,通过XEmbed协议将插件窗体嵌入浏览器托座,并将信息传递给可视化单元,同时屏蔽浏览器间的其它差异;
可视化单元,用于实现插件可视化和插件窗体事件驱动机制,并将信息传递给网络流单元,同时最小化Linux平台间的差异;
网络流单元,用于获取和控制网络视频码流,并将信息传递给播放绘制单元;
播放绘制单元,用于在所述可视化单元生成的插件窗体中,对所述网络流单元所获取的视频码流进行播放和本地图形绘制,并与网络流单元最终实现智能网络视频监控的功能。
本发明的实施方式还公开了一种基于浏览器的智能网络视频监控系统的工作方法,包括以下步骤
浏览器根据页面信息加载插件,并根据页面脚本要求为插件创建托座;
浏览器通过NPAPI将托座传递给插件;
插件基于XEmbed协议,将待创建的主窗体指针嵌入浏览器托座,并保留该托座结构中的相关信息;
插件基于Xll底层协议,根据托座结构信息,创建、映射并调整所有窗体;
页面脚本根据接收到的用户请求,通过NPAPI调用插件的相应接口实现不同的响
插件基于实时传输协议和实时流传输协议,从设备获取和控制视频码流;
插件实现网络视频播放和本地绘制工作。
本发明实施方式与现有技术相比,主要区别及其效果在于
通过XEmbed协议将插件窗体嵌入浏览器托座,使监控视频的播放可以跨越Linux 的不同发行版本和不同浏览器。
通过NPAPI框架和XEmbed协议实现插件与浏览器及页面间的交互,屏蔽了不同浏览器、窗体管理器环境间的差异,为插件的开发、移植和维护带来了便利;
使用实时传输协议和实时流传输协议,以及浏览器和服务器结构透明化的设计思想,为安防监控行业的融合和标准化奠定了基础。
进一步地,直接调用Xll底层协议实现插件可视化,使监控视频的播放、交互与 Linux系统的平台相依性最小。
图I是本发明第一实施方式中一种基于浏览器的智能网络视频监控系统的结构示意图2是对应于本发明第一实施方式中一种基于浏览器的智能网络视频监控系统的插件五层模型示意图3是对应于本发明第一实施方式中一种基于浏览器的智能网络视频监控系统的插件框架及其与五层模型的对应关系示意图4是本发明第二实施方式中一种基于浏览器的智能网络视频监控系统的工作方法的流程示意图5是本发明第三实施方式中一种基于浏览器的智能网络视频监控系统的工作5方法的流程示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种基于浏览器的智能网络视频监控系统。图I是该基于浏览器的智能网络视频监控系统的结构示意图。
具体地说,如图I所示,该基于浏览器的智能网络视频监控系统主要包括
页面交互单元,用于与页面脚本交互,并将信息传递给浏览器交互单元,同时屏蔽浏览器间的大部分差异。
页面交互单元利用NPAPI协议实现与页面脚本的交互。
NPAPI(Netscape Plugin Application Programming Interface),最初为由 Netscape 公司制定的一组 C Plugin API,支持 NPRuntime 延伸 API 以支援 Scriptability。
浏览器交互单元,用于与浏览器交互,通过XEmbed协议将插件窗体嵌入浏览器传入的托座,并将信息传递给可视化单元,同时屏蔽浏览器间的其它差异。
XEmbed协议,是指为某一应用程序重设父窗体以嵌入到另一应用程序的基于X机制的协议。
具体地说,该浏览器交互单元包括以下子单元
XEmbed转化子单元,用于将插件窗体嵌入浏览器托座,并完成相应的窗体类型转换工作。
内部调度子单元,用于负责插件内部各模块的调度与回调。
本地配置子单元,用于对用户自定义配置信息进行本地化管理。
其中,用户自定义配置信息包括连接协议、码流类型、播放窗口比例模式、录像文件打包大小、录像和抓图文件的保存路径等。
插件版本控制子单元,用于为页面脚本提供插件版本信息,对插件是否需要升级进行判定。
异常检测子单元,用于对内收集插件内部由于网络或内存异常导致的错误信息, 对外为页面脚本提供获取插件错误值的接口。
插件实例管理子单元,用于在浏览器打开多标签页时,管理多个插件的实例,保证各单元之间回调正确的插件实例。
可视化单元,用于实现插件可视化和插件窗体事件驱动机制,并将信息传递给网络流单元,同时最小化Linux平台间的差异。
可视化单元利用Xll底层协议实现插件可视化和插件窗体事件驱动机制。
其中,Xll协议是指在Unix和类Unix操作系统,以及OpenVMS上建立图形用户界面的标准工具包和协议。
Xll底层协议作为Linux系统可视化的基础,使监控视频的播放、交互与Linux系CN 102547231 A统的平台相依性最小。
具体地说,该可视化单元包括以下子单元
Xll管理子单元,用于封装Xll底层接口 ;通过Xll底层协议实现插件内窗体的映射、调整;同时接收X服务端传递的事件,分发给正确的窗体;被所有窗体子单元调用。
主窗体子单元,用于负责所有子窗体的空间布局当初始化或用户重选预览画面分割模式时,对所有子窗体的位置、尺寸和隐显等进行重新调整。此外,主窗体子单元还负责部分与Linux文件系统的交互,如远程升级配置文件的选取,设备日志的导出等操作。
子窗体子单元,用于向下调用网络流单元,实现播放区域子单元的预览、回放、录像、抓图等控制,和对统一资源定位符(URL)的解析等操作。
播放区域子单元,用于负责填充、4:3、16:9等播放模式的几何位置的计算,以及区域绘制、屏幕菜单式调节方式(On-Screen Display,简称“OSD”)设置等人机交互操作中鼠标事件的管理。
全屏窗体子单元,用于实现进入或退出全屏播放状态的一系列操作。
网络流单元,用于获取和控制网络视频码流,实现RTP/RTSP协议的网络视频流获取与控制,并将信息传递给播放绘制单元。
其中,RTP(Real-timeTransport Protocol)是指实时传输协议。
RTSP(Real Time Streaming Protocol)是指实时流传输协议。
播放绘制单元,用于在可视化单元生成的插件窗体中,对网络流单元所获取的视频码流进行播放和本地图形绘制,并与网络流单元最终实现智能网络视频监控的功能。
具体地说,该播放绘制单元包括播放子单元和绘制子单元。
播放子单元,用于实现视频码流的播放,通过开放式图形库(Open Graphics Library,简称“OpenGL”)或者跨平台多媒体开发包(Simple Media Layer,简称“SDL”), 实现视频的播放。
绘制子单元,用于实现网络视频监控中的本地图形绘制,实现视频监控中移动侦测、遮挡报警、隐私遮盖区域和屏幕显示信息在播放区域中的绘制、显示和移动,并将相应信息传递给页面脚本,并发送至设备。
通过XEmbed协议将插件窗体嵌入浏览器托座,使监控视频的播放可以跨越Linux 的不同发行版本和不同浏览器。
一般比较容易想到的的实现方式是利用页面脚本实现将插件窗体直接嵌入浏览器托座,但本发明的发明人发现,这种方式虽然实现简单,但在不少Linux的版本或不同的浏览器中会出现兼容性问题,通过反复试验后,该问题通过XEmbed协议予以解决。
对应于本发明实施方式中所述的基于浏览器的智能网络视频监控系统,相应的插件开发模型分为五层,具体地说,如图2所示,自上而下依次为页面交互层(J)、浏览器交互层(B)、可视化层(X)、网络流层(N)和播放绘制层(V)。
(I) J层负责插件与页面脚本之间的交互,借助NPAPI框架达成跨越不同浏览器的通用接口。
(2)B层负责插件与浏览器之间的交互,通过XEmbed协议将插件窗体嵌入浏览器托座,以实现跨越不同窗体管理器环境。
(3)X层负责插件的可视化以及与用户之间的交互,通过Xll底层协议完成插件窗体映射、调整、鼠标和键盘响应等的事件驱动机制。(4)N层负责网络视频的取流及控制工作,主要以RTP和RTSP协议实现。(5) V层负责视频播放及图形绘制工作,可通过OpenGL或SDL实现。下两层是针对视频监控;可视化层针对插件在浏览器中的显示,并保证平台依赖性最小;上两层是为了跨浏览器而设置。所述插件的整体框架、模块调用关系及其与五层模型间的对应关系如图3所示。总体上,可划分为页面交互、插件控制、窗体管理、网络流控制、播放绘制五个主要部分。页面交互部分由PD-010页面交互模块实现。PD-010页面交互模块,通过产生脚本化对象被JS调用,亦可主动向JS发送事件, 对外作为插件与页面交互的接口,对内为插件管理模块解析JS调用及参数。插件控制部分包括PD-020插件控制模块及其子模块。PD-020插件控制模块,将插件嵌入浏览器托座;同时负责插件内部各模块的调度如对JS调用请求的响应、向主窗体或全屏窗体发送命令、响应网络流控制模块的回调等工作;另外还实现插件的一些附属功能如本地参数配置、插件版本控制、异常检测、及多标签时的插件实例管理等工作。PD-020根据功能,内部又可划分为PD-021 XEmbed转化、PD-022内部调度、PD-023 本地配置、PD-024插件版本控制、PD-025异常检测、PD_(^6插件实例管理6个子模块。PD-021 XEmbed转化子模块,负责将插件窗体嵌入浏览器托座,以及相应的窗体类
型转换工作。PD-022内部调度子模块,负责插件内部各模块的调度与回调。PD-023本地配置子模块,对连接协议、码流类型、播放窗口比例模式、录像文件打包大小、录像和抓图文件的保存路径等用户自定义配置信息进行本地化管理。PD-024插件版本控制子模块,为JS提供插件版本信息,对插件是否需要升级进行判定。PD-025异常检测子模块,对内收集插件内部由于网络或内存异常导致的错误信息,对外为JS提供获取插件错误值的接口。PD_(^6插件实例管理子模块,在浏览器打开多标签页时,管理多个插件的实例,保证各模块之间回调正确的插件实例。窗体管理部分由PD-030 Xll管理、PD-040主窗体、PD-050子窗体、PD-060播放区域、PD-070全屏窗体6个模块组成。PD-030 Xll管理模块,封装Xll底层接口 ;通过Xll底层协议实现插件内窗体的映射、调整;同时接收X服务端传递的事件,分发给正确的窗体;被所有窗体模块调用。PD-040主窗体模块,负责所有子窗体的空间布局当初始化或用户重选预览画面分割模式时,对所有子窗体的位置、尺寸和隐显等进行重新调整。此外,主窗体模块还负责部分与Linux文件系统的交互,如远程升级配置文件的导入导出,设备日志的导出等操作。PD-050子窗体模块,向下调用网络流控制模块,实现各播放区域的预览、回放、录像、抓图等控制,和对URL的解析等操作。PD-060播放区域模块,负责填充、4:3、16:9等播放模式的几何位置的计算,以及区域绘制、OSD设置等人机交互操作中鼠标事件的处理。PD-070全屏窗体模块,实现进入或退出全屏播放状态的一系列操作。PD-080网络流控制模块,实现RTP/RTSP协议的网络视频流获取与控制。播放绘制部分由PD-090绘制模块和PD-100播放模块组成。PD-090绘制模块,以人机交互的方式,通过OpenGL或Xlib,实现视频监控中移动侦测、遮挡报警、隐私遮盖等区域和OSD信息在播放区域中的设置和绘制,并将相应信息传予JS,进而发送至设备。PD-100播放模块,籍由OpenGL或SDL实现视频的播放。需要说明的是,本发明各系统实施方式中提到的各单元都是逻辑单元,在物理上, 一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合是才解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各系统实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述各系统实施方式并不存在其它的单元。本发明第二实施方式涉及一种基于浏览器的智能网络视频监控系统的工作方法。 图4是该基于浏览器的智能网络视频监控系统的工作方法的流程示意图。具体地说,该基于浏览器的智能网络视频监控系统的工作方法主要包括以下步骤在步骤401中,浏览器加载插件并创建托座。浏览器根据页面信息加载插件,并根据页面脚本要求为插件创建托座。此后进入步骤402,浏览器通过NPAPI将托座传递给插件。此后进入步骤403,插件以XEmbed嵌入托座。插件基于XEmbed协议,将待创建的主窗体嵌入浏览器托座,并保留该托座结构中的相关信息。此后进入步骤404,插件以Xll映射调整窗体。插件基于Xll底层协议,根据托座结构信息,创建、映射并调整所有窗体。此后进入步骤405,页面脚本通过NPAPI调用插件。页面脚本根据接收到的用户请求,通过NPAPI调用插件的相应接口实现不同的响应。此后进入步骤406,插件基于RTP/RTSP取流控制。插件基于实时传输协议和实时流传输协议,从设备获取和控制视频码流。此后进入步骤407,视频播放和本地绘制。插件实现视频播放和本地绘制工作。此后结束本流程。通过NPAPI框架和XEmbed协议实现插件与浏览器及页面间的交互,屏蔽了不同浏览器和窗体管理器环境间的差异,为插件的开发、移植和维护带来了便利。使用实时传输协议和实时流传输协议,以及浏览器和服务器结构透明化的设计思想,为安防监控行业的融合和标准化奠定了基础。本实施方式是与第一实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。本发明第三实施方式涉及一种基于浏览器的智能网络视频监控系统的工作方法。 图5是该基于浏览器的智能网络视频监控系统的工作方法的流程示意图。第三实施方式在第二实施方式的基础上进行了改进,主要改进之处在于在插件实现视频播放和本地绘制工作的步骤之后,还包括以下步骤插件向页面脚本主动发起事件,请求页面脚本的进一步处理。在插件向页面脚本主动发起事件,请求页面脚本的进一步处理的步骤之前,还包括以下步骤插件操作文件系统,完成文件读写、磁盘分区参数检索工作。在页面脚本根据接收到的用户请求,调用插件的相应接口实现不同的响应的步骤中,包括以下子步骤如果用户的请求是请求预览、回放、暂停、快慢放、单帧、绘制区域或屏幕菜单式调节方式信息操作,则进入插件从设备获取和控制视频码流的步骤。如果用户的请求是请求导入导出设备或本地配置、设备日志、下载录像、远程升级操作,则进入插件操作文件系统,完成文件读写、磁盘分区参数检索工作的步骤。如果用户的请求是请求录像、抓图操作,则需同时进入插件从设备获取和控制视频码流的步骤和插件操作文件系统,完成文件读写、磁盘分区参数检索工作的步骤,协同完成工作。如果用户的请求是请求重新设置播放窗口模式、获取插件版本、错误值操作,则会调用浏览器交互单元中的相应子单元并将结果直接返回。具体地说,如图5所示,该基于浏览器的智能网络视频监控系统的工作方法主要包括以下步骤在步骤501中,用户输入IP和认证信息。用户在浏览器中输入远程设备IP,从设备中下载页面文件,在页面登录界面中输入认证信息,登录设备。该设备可以是数字硬盘录像机DVR或网络视频录像机NVR,也可以是网络摄像机IPC。此后进入步骤502,浏览器加载插件并创建托座。浏览器根据页面信息和MIME类型加载插件,并根据JS要求为插件创建托座。此后进入步骤503,浏览器通过NPAPI将托座传递给插件。浏览器根据NPAPI将托座封装为特定结构,传递给插件。此后进入步骤504,插件以XEmbed嵌入托座。插件基于XEmbed协议,将创建的主窗体嵌入托座,并保留该托座结构中的相关信肩、ο此后进入步骤505,插件以Xll映射调整窗体。插件基于Xll底层协议,根据托座结构信息,创建、映射并调整所有窗体,同时将各窗体注册的Xll事件Mask传递给X服务端。至此,浏览器加载插件和插件初始化工作完成。此后进入步骤506,页面脚本通过NPAPI调用插件。
此后进入步骤507,判断用户请求类型;JS根据接收到的用户请求,通过NPAPI调用插件的相应接口实现不同的响应如果是请求预览、回放、暂停、快慢放、单帧、绘制区域或OSD信息等操作,则进入步骤508 ;如果是请求导入导出设备或本地配置、设备日志、下载录像、远程升级等操作,则进入步骤511 ;如果是请求录像、抓图等操作,则需同时进入步骤508和510协同完成工作;如果是请求重新设置播放窗口模式、获取插件版本、错误值等操作,则会调用浏览器交互单元中的相应子单元并将结果直接返回。在步骤508中,插件基于RTP/RTSP协议取流控制。插件基于RTP和RTSP协议,从设备获取和控制视频码流。此后进入步骤509,视频播放和本地绘制。插件通过OpenGL或SDL实现视频播放。插件基于Xll事件驱动机制,通过OpenGL或Xlib以人机交互方式实现本地绘制操作,同时将绘制结果以Xll协议传递给X服务端,并映射到窗体,再次回到步骤505。此后进入步骤510,插件通过NPAPI向页面脚本发送事件。对于播放过程中用户重新点选预览窗口、或录像过程中磁盘分区剩余空间不足等情况发生时,插件也可通过NPAPI向JS主动发起事件,请求JS的进一步处理。此后结束本流程。在步骤511中,操作文件系统。插件操作Linux文件系统,完成文件读写、磁盘分区参数检索等工作。此后进入步骤510。本实施方式是与第一实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称 “PROM”)、只读存储器(Read-Only Memory, 简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPR0M”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种基于浏览器的智能网络视频监控系统,其特征在于,包括,页面交互单元,用于与页面脚本交互,并将信息传递给浏览器交互单元,同时屏蔽浏览器间的大部分差异;浏览器交互单元,用于与浏览器交互,通过XEmbed协议将插件窗体嵌入浏览器托座, 并将信息传递给可视化单元,同时屏蔽浏览器间的其它差异;可视化单元,用于实现插件可视化和插件窗体事件驱动机制,并将信息传递给网络流单元,同时最小化Linux平台间的差异;网络流单元,用于获取和控制网络视频码流,并将信息传递给播放绘制单元;播放绘制单元,用于在所述可视化单元生成的插件窗体中,对所述网络流单元所获取的视频码流进行播放和本地图形绘制,并与网络流单元最终实现智能网络视频监控的功倉泛。
2.根据权利要求I所述的基于浏览器的智能网络视频监控系统,其特征在于,所述页面交互单元利用NPAPI协议实现与页面脚本的交互;所述可视化单元利用Xll底层协议实现插件可视化和插件窗体事件驱动机制。
3.根据权利要求I所述的基于浏览器的智能网络视频监控系统,其特征在于,所述播放绘制单元包括播放子单元和绘制子单元;所述播放子单元,用于实现视频码流的播放;所述绘制子单元,用于实现网络视频监控中的本地图形绘制,实现视频监控中移动侦测、遮挡报警、隐私遮盖区域和屏幕显示信息在播放区域中的绘制、显示和移动,并将相应信息传递给页面脚本,再由脚本传递给远端的数字硬盘录像机或网络摄像机。
4.根据权利要求I所述的基于浏览器的智能网络视频监控系统,其特征在于,所述浏览器交互单元包括以下子单元XEmbed转化子单元,用于将插件窗体嵌入浏览器托座,并完成相应的窗体类型转换工作;内部调度子单元,用于负责插件内部各模块的调度与回调;本地配置子单元,用于对用户自定义配置信息进行本地化管理;插件版本控制子单元,用于为页面脚本提供插件版本信息,对插件是否需要升级进行判定;异常检测子单元,用于对内收集插件内部由于网络或内存异常导致的错误信息,对外为页面脚本提供获取插件错误值的接口;插件实例管理子单元,用于在浏览器打开多标签页时,管理多个插件的实例,保证各单元之间回调正确的插件实例。
5.根据权利要求4所述的基于浏览器的智能网络视频监控系统,其特征在于,在所述本地配置子单元中,用户自定义配置信息包括连接协议、码流类型、播放窗口比例模式、录像文件打包大小、录像和抓图文件的保存路径。
6.根据权利要求I所述的基于浏览器的智能网络视频监控系统,其特征在于,所述可视化单元包括以下子单元Xll管理子单元,用于封装Xll底层接口 ;通过Xll底层协议实现插件内窗体的映射、2/2页调整;主窗体子单元,用于负责所有子窗体的空间布局;同时负责部分与Linux文件系统的交互;子窗体子单元,用于向下调用网络流单元,实现对播放区域子单元的控制,和对统一资源定位符的解析;播放区域子单元,用于负责填充和不同播放模式的几何位置的计算,以及人机交互操作中鼠标事件的处理;全屏窗体子单元,用于实现进入或退出全屏播放状态的一系列操作。
7.一种基于浏览器的智能网络视频监控系统的工作方法,其特征在于,包括以下步骤浏览器根据页面信息加载插件,并根据页面脚本要求为插件创建托座;浏览器通过NPAPI协议将托座传递给插件;插件基于XEmbed协议,将待创建的主窗体嵌入浏览器托座,并保留该托座结构中的相关信息;插件基于Xll底层协议,根据托座结构信息,创建、映射并调整所有窗体;页面脚本根据接收到的用户请求,通过NPAPI调用插件的相应接口实现不同的响应; 插件基于实时传输协议和实时流传输协议,从设备获取和控制视频码流;插件实现网络视频播放和本地绘制工作。
8.根据权利要求7所述的基于浏览器的智能网络视频监控系统的工作方法,其特征在于,在所述插件实现视频播放和绘制工作的步骤之后,还包括以下步骤插件向页面脚本主动发起事件,请求页面脚本的进一步处理。
9.根据权利要求8所述的基于浏览器的智能网络视频监控系统的工作方法,其特征在于,在所述插件向页面脚本主动发起事件,请求页面脚本的进一步处理的步骤之前,还包括以下步骤插件操作文件系统,完成文件读写、磁盘分区参数检索工作。
10.根据权利要求7所述的基于浏览器的智能网络视频监控系统的工作方法,其特征在于,在所述页面脚本根据接收到的用户请求,调用插件的相应接口实现不同的响应的步骤中,包括以下子步骤如果用户的请求是请求预览、回放、暂停、快慢放、单帧、绘制区域或屏幕菜单式调节方式信息操作,则进入所述插件从设备获取和控制视频码流的步骤;如果用户的请求是请求导入导出设备或本地配置、设备日志、下载录像、远程升级操作,则进入所述插件操作文件系统,完成文件读写、磁盘分区参数检索工作的步骤;如果用户的请求是请求录像、抓图操作,则需同时进入所述插件从设备获取和控制视频码流的步骤和所述插件操作文件系统,完成文件读写、磁盘分区参数检索工作的步骤,协同完成工作;如果用户的请求是请求重新设置播放窗口模式、获取插件版本、错误值操作,则会调用浏览器交互单元中的相应子单元并将结果直接返回。
全文摘要
本发明涉及安防领域,公开了一种基于浏览器的智能网络视频监控系统及其工作方法。本发明中,通过XEmbed协议将插件窗体嵌入浏览器托座,使监控视频的播放绘制可以跨越Linux的不同版本和不同浏览器;通过NPAPI框架和XEmbed协议实现插件与浏览器及页面间的交互,屏蔽了不同浏览器和窗体管理器环境间的差异,为插件的开发、移植和维护带来了便利;使用实时传输协议和实时流传输协议,以及浏览器和服务器结构透明化的设计思想,为安防监控行业的融合和标准化奠定了基础。直接调用X11底层协议实现插件可视化,使监控视频的播放、交互与Linux系统的平台相依性最小。
文档编号H04N7/18GK102547231SQ20111036649
公开日2012年7月4日 申请日期2011年11月17日 优先权日2011年11月17日
发明者吴飏, 张小媛, 施志萍, 石炎明 申请人:杭州海康威视数字技术股份有限公司