專利名稱:基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)及其工作方法
技術領域:
本發(fā)明涉及安防領域,特別涉及基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控技術。
背景技術:
伴隨著計算機網(wǎng)絡、存儲、芯片技術的發(fā)展,視頻監(jiān)控技術向著智能化、網(wǎng)絡化的方向不斷前進,視頻監(jiān)控系統(tǒng)已進入智能網(wǎng)絡系統(tǒng)(Intelligent Video Surveillance,簡稱“IVS”)時代。它采用分布方式架設在網(wǎng)絡上,不受地域空間的限制,實現(xiàn)視頻資源的管理、傳輸、存儲、報警、集成等。由于網(wǎng)絡訪問能力的不斷增強,以及瘦客戶端訪問便捷的優(yōu)勢,IVS 又由 C/S (Client/Server)向 B/S (^Browser/Server)架構(gòu)逐漸演變。對于 B/S 架構(gòu)的視頻監(jiān)控客戶端的用戶,只要能夠接入網(wǎng)絡并具有權(quán)限,即可實現(xiàn)對存儲或監(jiān)控設備的訪問。這種訪問是透明的,甚至無需關注交互的設備具體是數(shù)字硬盤錄像機DVR還是網(wǎng)絡視頻錄像機NVR、網(wǎng)絡視頻服務器DVS亦或網(wǎng)絡攝像機IPC。
用戶借助瀏覽器,通過頁面控制網(wǎng)絡上的IP設備;瀏覽器又借助插件,實現(xiàn)頁面難以完成的視頻采集、播放、錄像、繪制等操作。瀏覽器與頁面的交互通常以 JavaScript (JS)等腳本語言編寫。JS難以實施同時對效率要求較高的取流、播放等工作, 則可通過C++等編譯語言生成的插件達成。JS跨平臺的特性使其在不同操作系統(tǒng)中,對頁面的訪問方式一致。但對于插件,由于(I)編譯器的平臺依賴性,⑵需與操作系統(tǒng)(OS) 和瀏覽器間進行交互,因此不同的OS和瀏覽器間的差異,導致在不同環(huán)境下插件的實現(xiàn)框架及方法各不相同。
目前的插件開發(fā)技術大多是基于IE等Windows系統(tǒng)中的瀏覽器。Linux系統(tǒng)開放性、穩(wěn)定性、成本低的特點,其普及程度逐年上升,尤其在視頻監(jiān)控領域占有重要地位。本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有技術中,主要存在以下幾個問題=(I)Linux系統(tǒng)瀏覽器插件技術的框架及實現(xiàn)方法鮮有提及;(2)由于Linux的開放性,其發(fā)行版眾多、更新頻繁,最基礎的窗體管理器(WM)也分為GNOME和KDE兩大陣營,以及近來越來越多的瀏覽器廠商涉入,都給插件開發(fā)的普適性帶來困難;(3)視頻監(jiān)控的目的必然要求插件在Linux中具有可視化及交互能力。
因此,在Linux系統(tǒng)中,能夠跨越不同發(fā)行版本、不同瀏覽器的智能網(wǎng)絡視頻監(jiān)控通用插件的系統(tǒng)框架及方法急切所需。發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)及其工作方法, 使監(jiān)控視頻的播放可以跨越Linux的不同發(fā)行版本和不同瀏覽器。
為解決上述技術問題,本發(fā)明的實施方式公開了一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),包括,
頁面交互單元,用于與頁面腳本交互,并將信息傳遞給瀏覽器交互單元,同時屏蔽瀏覽器間的大部分差異;
瀏覽器交互單元,用于與瀏覽器交互,通過XEmbed協(xié)議將插件窗體嵌入瀏覽器托座,并將信息傳遞給可視化單元,同時屏蔽瀏覽器間的其它差異;
可視化單元,用于實現(xiàn)插件可視化和插件窗體事件驅(qū)動機制,并將信息傳遞給網(wǎng)絡流單元,同時最小化Linux平臺間的差異;
網(wǎng)絡流單元,用于獲取和控制網(wǎng)絡視頻碼流,并將信息傳遞給播放繪制單元;
播放繪制單元,用于在所述可視化單元生成的插件窗體中,對所述網(wǎng)絡流單元所獲取的視頻碼流進行播放和本地圖形繪制,并與網(wǎng)絡流單元最終實現(xiàn)智能網(wǎng)絡視頻監(jiān)控的功能。
本發(fā)明的實施方式還公開了一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法,包括以下步驟
瀏覽器根據(jù)頁面信息加載插件,并根據(jù)頁面腳本要求為插件創(chuàng)建托座;
瀏覽器通過NPAPI將托座傳遞給插件;
插件基于XEmbed協(xié)議,將待創(chuàng)建的主窗體指針嵌入瀏覽器托座,并保留該托座結(jié)構(gòu)中的相關信息;
插件基于Xll底層協(xié)議,根據(jù)托座結(jié)構(gòu)信息,創(chuàng)建、映射并調(diào)整所有窗體;
頁面腳本根據(jù)接收到的用戶請求,通過NPAPI調(diào)用插件的相應接口實現(xiàn)不同的響
插件基于實時傳輸協(xié)議和實時流傳輸協(xié)議,從設備獲取和控制視頻碼流;
插件實現(xiàn)網(wǎng)絡視頻播放和本地繪制工作。
本發(fā)明實施方式與現(xiàn)有技術相比,主要區(qū)別及其效果在于
通過XEmbed協(xié)議將插件窗體嵌入瀏覽器托座,使監(jiān)控視頻的播放可以跨越Linux 的不同發(fā)行版本和不同瀏覽器。
通過NPAPI框架和XEmbed協(xié)議實現(xiàn)插件與瀏覽器及頁面間的交互,屏蔽了不同瀏覽器、窗體管理器環(huán)境間的差異,為插件的開發(fā)、移植和維護帶來了便利;
使用實時傳輸協(xié)議和實時流傳輸協(xié)議,以及瀏覽器和服務器結(jié)構(gòu)透明化的設計思想,為安防監(jiān)控行業(yè)的融合和標準化奠定了基礎。
進一步地,直接調(diào)用Xll底層協(xié)議實現(xiàn)插件可視化,使監(jiān)控視頻的播放、交互與 Linux系統(tǒng)的平臺相依性最小。
圖I是本發(fā)明第一實施方式中一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖2是對應于本發(fā)明第一實施方式中一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的插件五層模型示意圖3是對應于本發(fā)明第一實施方式中一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的插件框架及其與五層模型的對應關系示意圖4是本發(fā)明第二實施方式中一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法的流程示意圖5是本發(fā)明第三實施方式中一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作5方法的流程示意圖。
具體實施方式
在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術細節(jié)。但是,本領域的普通技術人員可以理解,即使沒有這些技術細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權(quán)利要求所要求保護的技術方案。
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的實施方式作進一步地詳細描述。
本發(fā)明第一實施方式涉及一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)。圖I是該基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的結(jié)構(gòu)示意圖。
具體地說,如圖I所示,該基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)主要包括
頁面交互單元,用于與頁面腳本交互,并將信息傳遞給瀏覽器交互單元,同時屏蔽瀏覽器間的大部分差異。
頁面交互單元利用NPAPI協(xié)議實現(xiàn)與頁面腳本的交互。
NPAPI(Netscape Plugin Application Programming Interface),最初為由 Netscape 公司制定的一組 C Plugin API,支持 NPRuntime 延伸 API 以支援 Scriptability。
瀏覽器交互單元,用于與瀏覽器交互,通過XEmbed協(xié)議將插件窗體嵌入瀏覽器傳入的托座,并將信息傳遞給可視化單元,同時屏蔽瀏覽器間的其它差異。
XEmbed協(xié)議,是指為某一應用程序重設父窗體以嵌入到另一應用程序的基于X機制的協(xié)議。
具體地說,該瀏覽器交互單元包括以下子單元
XEmbed轉(zhuǎn)化子單元,用于將插件窗體嵌入瀏覽器托座,并完成相應的窗體類型轉(zhuǎn)換工作。
內(nèi)部調(diào)度子單元,用于負責插件內(nèi)部各模塊的調(diào)度與回調(diào)。
本地配置子單元,用于對用戶自定義配置信息進行本地化管理。
其中,用戶自定義配置信息包括連接協(xié)議、碼流類型、播放窗口比例模式、錄像文件打包大小、錄像和抓圖文件的保存路徑等。
插件版本控制子單元,用于為頁面腳本提供插件版本信息,對插件是否需要升級進行判定。
異常檢測子單元,用于對內(nèi)收集插件內(nèi)部由于網(wǎng)絡或內(nèi)存異常導致的錯誤信息, 對外為頁面腳本提供獲取插件錯誤值的接口。
插件實例管理子單元,用于在瀏覽器打開多標簽頁時,管理多個插件的實例,保證各單元之間回調(diào)正確的插件實例。
可視化單元,用于實現(xiàn)插件可視化和插件窗體事件驅(qū)動機制,并將信息傳遞給網(wǎng)絡流單元,同時最小化Linux平臺間的差異。
可視化單元利用Xll底層協(xié)議實現(xiàn)插件可視化和插件窗體事件驅(qū)動機制。
其中,Xll協(xié)議是指在Unix和類Unix操作系統(tǒng),以及OpenVMS上建立圖形用戶界面的標準工具包和協(xié)議。
Xll底層協(xié)議作為Linux系統(tǒng)可視化的基礎,使監(jiān)控視頻的播放、交互與Linux系CN 102547231 A統(tǒng)的平臺相依性最小。
具體地說,該可視化單元包括以下子單元
Xll管理子單元,用于封裝Xll底層接口 ;通過Xll底層協(xié)議實現(xiàn)插件內(nèi)窗體的映射、調(diào)整;同時接收X服務端傳遞的事件,分發(fā)給正確的窗體;被所有窗體子單元調(diào)用。
主窗體子單元,用于負責所有子窗體的空間布局當初始化或用戶重選預覽畫面分割模式時,對所有子窗體的位置、尺寸和隱顯等進行重新調(diào)整。此外,主窗體子單元還負責部分與Linux文件系統(tǒng)的交互,如遠程升級配置文件的選取,設備日志的導出等操作。
子窗體子單元,用于向下調(diào)用網(wǎng)絡流單元,實現(xiàn)播放區(qū)域子單元的預覽、回放、錄像、抓圖等控制,和對統(tǒng)一資源定位符(URL)的解析等操作。
播放區(qū)域子單元,用于負責填充、4:3、16:9等播放模式的幾何位置的計算,以及區(qū)域繪制、屏幕菜單式調(diào)節(jié)方式(On-Screen Display,簡稱“OSD”)設置等人機交互操作中鼠標事件的管理。
全屏窗體子單元,用于實現(xiàn)進入或退出全屏播放狀態(tài)的一系列操作。
網(wǎng)絡流單元,用于獲取和控制網(wǎng)絡視頻碼流,實現(xiàn)RTP/RTSP協(xié)議的網(wǎng)絡視頻流獲取與控制,并將信息傳遞給播放繪制單元。
其中,RTP(Real-timeTransport Protocol)是指實時傳輸協(xié)議。
RTSP(Real Time Streaming Protocol)是指實時流傳輸協(xié)議。
播放繪制單元,用于在可視化單元生成的插件窗體中,對網(wǎng)絡流單元所獲取的視頻碼流進行播放和本地圖形繪制,并與網(wǎng)絡流單元最終實現(xiàn)智能網(wǎng)絡視頻監(jiān)控的功能。
具體地說,該播放繪制單元包括播放子單元和繪制子單元。
播放子單元,用于實現(xiàn)視頻碼流的播放,通過開放式圖形庫(Open Graphics Library,簡稱“OpenGL”)或者跨平臺多媒體開發(fā)包(Simple Media Layer,簡稱“SDL”), 實現(xiàn)視頻的播放。
繪制子單元,用于實現(xiàn)網(wǎng)絡視頻監(jiān)控中的本地圖形繪制,實現(xiàn)視頻監(jiān)控中移動偵測、遮擋報警、隱私遮蓋區(qū)域和屏幕顯示信息在播放區(qū)域中的繪制、顯示和移動,并將相應信息傳遞給頁面腳本,并發(fā)送至設備。
通過XEmbed協(xié)議將插件窗體嵌入瀏覽器托座,使監(jiān)控視頻的播放可以跨越Linux 的不同發(fā)行版本和不同瀏覽器。
一般比較容易想到的的實現(xiàn)方式是利用頁面腳本實現(xiàn)將插件窗體直接嵌入瀏覽器托座,但本發(fā)明的發(fā)明人發(fā)現(xiàn),這種方式雖然實現(xiàn)簡單,但在不少Linux的版本或不同的瀏覽器中會出現(xiàn)兼容性問題,通過反復試驗后,該問題通過XEmbed協(xié)議予以解決。
對應于本發(fā)明實施方式中所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),相應的插件開發(fā)模型分為五層,具體地說,如圖2所示,自上而下依次為頁面交互層(J)、瀏覽器交互層(B)、可視化層(X)、網(wǎng)絡流層(N)和播放繪制層(V)。
(I) J層負責插件與頁面腳本之間的交互,借助NPAPI框架達成跨越不同瀏覽器的通用接口。
(2)B層負責插件與瀏覽器之間的交互,通過XEmbed協(xié)議將插件窗體嵌入瀏覽器托座,以實現(xiàn)跨越不同窗體管理器環(huán)境。
(3)X層負責插件的可視化以及與用戶之間的交互,通過Xll底層協(xié)議完成插件窗體映射、調(diào)整、鼠標和鍵盤響應等的事件驅(qū)動機制。(4)N層負責網(wǎng)絡視頻的取流及控制工作,主要以RTP和RTSP協(xié)議實現(xiàn)。(5) V層負責視頻播放及圖形繪制工作,可通過OpenGL或SDL實現(xiàn)。下兩層是針對視頻監(jiān)控;可視化層針對插件在瀏覽器中的顯示,并保證平臺依賴性最??;上兩層是為了跨瀏覽器而設置。所述插件的整體框架、模塊調(diào)用關系及其與五層模型間的對應關系如圖3所示??傮w上,可劃分為頁面交互、插件控制、窗體管理、網(wǎng)絡流控制、播放繪制五個主要部分。頁面交互部分由PD-010頁面交互模塊實現(xiàn)。PD-010頁面交互模塊,通過產(chǎn)生腳本化對象被JS調(diào)用,亦可主動向JS發(fā)送事件, 對外作為插件與頁面交互的接口,對內(nèi)為插件管理模塊解析JS調(diào)用及參數(shù)。插件控制部分包括PD-020插件控制模塊及其子模塊。PD-020插件控制模塊,將插件嵌入瀏覽器托座;同時負責插件內(nèi)部各模塊的調(diào)度如對JS調(diào)用請求的響應、向主窗體或全屏窗體發(fā)送命令、響應網(wǎng)絡流控制模塊的回調(diào)等工作;另外還實現(xiàn)插件的一些附屬功能如本地參數(shù)配置、插件版本控制、異常檢測、及多標簽時的插件實例管理等工作。PD-020根據(jù)功能,內(nèi)部又可劃分為PD-021 XEmbed轉(zhuǎn)化、PD-022內(nèi)部調(diào)度、PD-023 本地配置、PD-024插件版本控制、PD-025異常檢測、PD_(^6插件實例管理6個子模塊。PD-021 XEmbed轉(zhuǎn)化子模塊,負責將插件窗體嵌入瀏覽器托座,以及相應的窗體類
型轉(zhuǎn)換工作。PD-022內(nèi)部調(diào)度子模塊,負責插件內(nèi)部各模塊的調(diào)度與回調(diào)。PD-023本地配置子模塊,對連接協(xié)議、碼流類型、播放窗口比例模式、錄像文件打包大小、錄像和抓圖文件的保存路徑等用戶自定義配置信息進行本地化管理。PD-024插件版本控制子模塊,為JS提供插件版本信息,對插件是否需要升級進行判定。PD-025異常檢測子模塊,對內(nèi)收集插件內(nèi)部由于網(wǎng)絡或內(nèi)存異常導致的錯誤信息,對外為JS提供獲取插件錯誤值的接口。PD_(^6插件實例管理子模塊,在瀏覽器打開多標簽頁時,管理多個插件的實例,保證各模塊之間回調(diào)正確的插件實例。窗體管理部分由PD-030 Xll管理、PD-040主窗體、PD-050子窗體、PD-060播放區(qū)域、PD-070全屏窗體6個模塊組成。PD-030 Xll管理模塊,封裝Xll底層接口 ;通過Xll底層協(xié)議實現(xiàn)插件內(nèi)窗體的映射、調(diào)整;同時接收X服務端傳遞的事件,分發(fā)給正確的窗體;被所有窗體模塊調(diào)用。PD-040主窗體模塊,負責所有子窗體的空間布局當初始化或用戶重選預覽畫面分割模式時,對所有子窗體的位置、尺寸和隱顯等進行重新調(diào)整。此外,主窗體模塊還負責部分與Linux文件系統(tǒng)的交互,如遠程升級配置文件的導入導出,設備日志的導出等操作。PD-050子窗體模塊,向下調(diào)用網(wǎng)絡流控制模塊,實現(xiàn)各播放區(qū)域的預覽、回放、錄像、抓圖等控制,和對URL的解析等操作。PD-060播放區(qū)域模塊,負責填充、4:3、16:9等播放模式的幾何位置的計算,以及區(qū)域繪制、OSD設置等人機交互操作中鼠標事件的處理。PD-070全屏窗體模塊,實現(xiàn)進入或退出全屏播放狀態(tài)的一系列操作。PD-080網(wǎng)絡流控制模塊,實現(xiàn)RTP/RTSP協(xié)議的網(wǎng)絡視頻流獲取與控制。播放繪制部分由PD-090繪制模塊和PD-100播放模塊組成。PD-090繪制模塊,以人機交互的方式,通過OpenGL或Xlib,實現(xiàn)視頻監(jiān)控中移動偵測、遮擋報警、隱私遮蓋等區(qū)域和OSD信息在播放區(qū)域中的設置和繪制,并將相應信息傳予JS,進而發(fā)送至設備。PD-100播放模塊,籍由OpenGL或SDL實現(xiàn)視頻的播放。需要說明的是,本發(fā)明各系統(tǒng)實施方式中提到的各單元都是邏輯單元,在物理上, 一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現(xiàn),這些邏輯單元本身的物理實現(xiàn)方式并不是最重要的,這些邏輯單元所實現(xiàn)的功能的組合是才解決本發(fā)明所提出的技術問題的關鍵。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述各系統(tǒng)實施方式并沒有將與解決本發(fā)明所提出的技術問題關系不太密切的單元引入,這并不表明上述各系統(tǒng)實施方式并不存在其它的單元。本發(fā)明第二實施方式涉及一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法。 圖4是該基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法的流程示意圖。具體地說,該基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法主要包括以下步驟在步驟401中,瀏覽器加載插件并創(chuàng)建托座。瀏覽器根據(jù)頁面信息加載插件,并根據(jù)頁面腳本要求為插件創(chuàng)建托座。此后進入步驟402,瀏覽器通過NPAPI將托座傳遞給插件。此后進入步驟403,插件以XEmbed嵌入托座。插件基于XEmbed協(xié)議,將待創(chuàng)建的主窗體嵌入瀏覽器托座,并保留該托座結(jié)構(gòu)中的相關信息。此后進入步驟404,插件以Xll映射調(diào)整窗體。插件基于Xll底層協(xié)議,根據(jù)托座結(jié)構(gòu)信息,創(chuàng)建、映射并調(diào)整所有窗體。此后進入步驟405,頁面腳本通過NPAPI調(diào)用插件。頁面腳本根據(jù)接收到的用戶請求,通過NPAPI調(diào)用插件的相應接口實現(xiàn)不同的響應。此后進入步驟406,插件基于RTP/RTSP取流控制。插件基于實時傳輸協(xié)議和實時流傳輸協(xié)議,從設備獲取和控制視頻碼流。此后進入步驟407,視頻播放和本地繪制。插件實現(xiàn)視頻播放和本地繪制工作。此后結(jié)束本流程。通過NPAPI框架和XEmbed協(xié)議實現(xiàn)插件與瀏覽器及頁面間的交互,屏蔽了不同瀏覽器和窗體管理器環(huán)境間的差異,為插件的開發(fā)、移植和維護帶來了便利。使用實時傳輸協(xié)議和實時流傳輸協(xié)議,以及瀏覽器和服務器結(jié)構(gòu)透明化的設計思想,為安防監(jiān)控行業(yè)的融合和標準化奠定了基礎。本實施方式是與第一實施方式相對應的方法實施方式,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關技術細節(jié)在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節(jié)也可應用在第一實施方式中。本發(fā)明第三實施方式涉及一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法。 圖5是該基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法的流程示意圖。第三實施方式在第二實施方式的基礎上進行了改進,主要改進之處在于在插件實現(xiàn)視頻播放和本地繪制工作的步驟之后,還包括以下步驟插件向頁面腳本主動發(fā)起事件,請求頁面腳本的進一步處理。在插件向頁面腳本主動發(fā)起事件,請求頁面腳本的進一步處理的步驟之前,還包括以下步驟插件操作文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索工作。在頁面腳本根據(jù)接收到的用戶請求,調(diào)用插件的相應接口實現(xiàn)不同的響應的步驟中,包括以下子步驟如果用戶的請求是請求預覽、回放、暫停、快慢放、單幀、繪制區(qū)域或屏幕菜單式調(diào)節(jié)方式信息操作,則進入插件從設備獲取和控制視頻碼流的步驟。如果用戶的請求是請求導入導出設備或本地配置、設備日志、下載錄像、遠程升級操作,則進入插件操作文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索工作的步驟。如果用戶的請求是請求錄像、抓圖操作,則需同時進入插件從設備獲取和控制視頻碼流的步驟和插件操作文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索工作的步驟,協(xié)同完成工作。如果用戶的請求是請求重新設置播放窗口模式、獲取插件版本、錯誤值操作,則會調(diào)用瀏覽器交互單元中的相應子單元并將結(jié)果直接返回。具體地說,如圖5所示,該基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法主要包括以下步驟在步驟501中,用戶輸入IP和認證信息。用戶在瀏覽器中輸入遠程設備IP,從設備中下載頁面文件,在頁面登錄界面中輸入認證信息,登錄設備。該設備可以是數(shù)字硬盤錄像機DVR或網(wǎng)絡視頻錄像機NVR,也可以是網(wǎng)絡攝像機IPC。此后進入步驟502,瀏覽器加載插件并創(chuàng)建托座。瀏覽器根據(jù)頁面信息和MIME類型加載插件,并根據(jù)JS要求為插件創(chuàng)建托座。此后進入步驟503,瀏覽器通過NPAPI將托座傳遞給插件。瀏覽器根據(jù)NPAPI將托座封裝為特定結(jié)構(gòu),傳遞給插件。此后進入步驟504,插件以XEmbed嵌入托座。插件基于XEmbed協(xié)議,將創(chuàng)建的主窗體嵌入托座,并保留該托座結(jié)構(gòu)中的相關信肩、ο此后進入步驟505,插件以Xll映射調(diào)整窗體。插件基于Xll底層協(xié)議,根據(jù)托座結(jié)構(gòu)信息,創(chuàng)建、映射并調(diào)整所有窗體,同時將各窗體注冊的Xll事件Mask傳遞給X服務端。至此,瀏覽器加載插件和插件初始化工作完成。此后進入步驟506,頁面腳本通過NPAPI調(diào)用插件。
此后進入步驟507,判斷用戶請求類型;JS根據(jù)接收到的用戶請求,通過NPAPI調(diào)用插件的相應接口實現(xiàn)不同的響應如果是請求預覽、回放、暫停、快慢放、單幀、繪制區(qū)域或OSD信息等操作,則進入步驟508 ;如果是請求導入導出設備或本地配置、設備日志、下載錄像、遠程升級等操作,則進入步驟511 ;如果是請求錄像、抓圖等操作,則需同時進入步驟508和510協(xié)同完成工作;如果是請求重新設置播放窗口模式、獲取插件版本、錯誤值等操作,則會調(diào)用瀏覽器交互單元中的相應子單元并將結(jié)果直接返回。在步驟508中,插件基于RTP/RTSP協(xié)議取流控制。插件基于RTP和RTSP協(xié)議,從設備獲取和控制視頻碼流。此后進入步驟509,視頻播放和本地繪制。插件通過OpenGL或SDL實現(xiàn)視頻播放。插件基于Xll事件驅(qū)動機制,通過OpenGL或Xlib以人機交互方式實現(xiàn)本地繪制操作,同時將繪制結(jié)果以Xll協(xié)議傳遞給X服務端,并映射到窗體,再次回到步驟505。此后進入步驟510,插件通過NPAPI向頁面腳本發(fā)送事件。對于播放過程中用戶重新點選預覽窗口、或錄像過程中磁盤分區(qū)剩余空間不足等情況發(fā)生時,插件也可通過NPAPI向JS主動發(fā)起事件,請求JS的進一步處理。此后結(jié)束本流程。在步驟511中,操作文件系統(tǒng)。插件操作Linux文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索等工作。此后進入步驟510。本實施方式是與第一實施方式相對應的方法實施方式,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關技術細節(jié)在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節(jié)也可應用在第一實施方式中。本發(fā)明的各方法實施方式均可以以軟件、硬件、固件等方式實現(xiàn)。不管本發(fā)明是以軟件、硬件、還是固件方式實現(xiàn),指令代碼都可以存儲在任何類型的計算機可訪問的存儲器中(例如永久的或者可修改的,易失性的或者非易失性的,固態(tài)的或者非固態(tài)的,固定的或者可更換的介質(zhì)等等)。同樣,存儲器可以例如是可編程陣列邏輯(Programmable Array Logic,簡稱“PAL”)、隨機存取存儲器(Random Access Memory,簡稱“RAM”)、可編程只讀存儲器(Programmable Read Only Memory,簡稱 “PROM”)、只讀存儲器(Read-Only Memory, 簡稱“ROM”)、電可擦除可編程只讀存儲器(Electrically Erasable Programmable ROM,簡稱“EEPR0M”)、磁盤、光盤、數(shù)字通用光盤(Digital Versatile Disc,簡稱“DVD”)等等。雖然通過參照本發(fā)明的某些優(yōu)選實施方式,已經(jīng)對本發(fā)明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),其特征在于,包括,頁面交互單元,用于與頁面腳本交互,并將信息傳遞給瀏覽器交互單元,同時屏蔽瀏覽器間的大部分差異;瀏覽器交互單元,用于與瀏覽器交互,通過XEmbed協(xié)議將插件窗體嵌入瀏覽器托座, 并將信息傳遞給可視化單元,同時屏蔽瀏覽器間的其它差異;可視化單元,用于實現(xiàn)插件可視化和插件窗體事件驅(qū)動機制,并將信息傳遞給網(wǎng)絡流單元,同時最小化Linux平臺間的差異;網(wǎng)絡流單元,用于獲取和控制網(wǎng)絡視頻碼流,并將信息傳遞給播放繪制單元;播放繪制單元,用于在所述可視化單元生成的插件窗體中,對所述網(wǎng)絡流單元所獲取的視頻碼流進行播放和本地圖形繪制,并與網(wǎng)絡流單元最終實現(xiàn)智能網(wǎng)絡視頻監(jiān)控的功倉泛。
2.根據(jù)權(quán)利要求I所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),其特征在于,所述頁面交互單元利用NPAPI協(xié)議實現(xiàn)與頁面腳本的交互;所述可視化單元利用Xll底層協(xié)議實現(xiàn)插件可視化和插件窗體事件驅(qū)動機制。
3.根據(jù)權(quán)利要求I所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),其特征在于,所述播放繪制單元包括播放子單元和繪制子單元;所述播放子單元,用于實現(xiàn)視頻碼流的播放;所述繪制子單元,用于實現(xiàn)網(wǎng)絡視頻監(jiān)控中的本地圖形繪制,實現(xiàn)視頻監(jiān)控中移動偵測、遮擋報警、隱私遮蓋區(qū)域和屏幕顯示信息在播放區(qū)域中的繪制、顯示和移動,并將相應信息傳遞給頁面腳本,再由腳本傳遞給遠端的數(shù)字硬盤錄像機或網(wǎng)絡攝像機。
4.根據(jù)權(quán)利要求I所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),其特征在于,所述瀏覽器交互單元包括以下子單元XEmbed轉(zhuǎn)化子單元,用于將插件窗體嵌入瀏覽器托座,并完成相應的窗體類型轉(zhuǎn)換工作;內(nèi)部調(diào)度子單元,用于負責插件內(nèi)部各模塊的調(diào)度與回調(diào);本地配置子單元,用于對用戶自定義配置信息進行本地化管理;插件版本控制子單元,用于為頁面腳本提供插件版本信息,對插件是否需要升級進行判定;異常檢測子單元,用于對內(nèi)收集插件內(nèi)部由于網(wǎng)絡或內(nèi)存異常導致的錯誤信息,對外為頁面腳本提供獲取插件錯誤值的接口;插件實例管理子單元,用于在瀏覽器打開多標簽頁時,管理多個插件的實例,保證各單元之間回調(diào)正確的插件實例。
5.根據(jù)權(quán)利要求4所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),其特征在于,在所述本地配置子單元中,用戶自定義配置信息包括連接協(xié)議、碼流類型、播放窗口比例模式、錄像文件打包大小、錄像和抓圖文件的保存路徑。
6.根據(jù)權(quán)利要求I所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng),其特征在于,所述可視化單元包括以下子單元Xll管理子單元,用于封裝Xll底層接口 ;通過Xll底層協(xié)議實現(xiàn)插件內(nèi)窗體的映射、2/2頁調(diào)整;主窗體子單元,用于負責所有子窗體的空間布局;同時負責部分與Linux文件系統(tǒng)的交互;子窗體子單元,用于向下調(diào)用網(wǎng)絡流單元,實現(xiàn)對播放區(qū)域子單元的控制,和對統(tǒng)一資源定位符的解析;播放區(qū)域子單元,用于負責填充和不同播放模式的幾何位置的計算,以及人機交互操作中鼠標事件的處理;全屏窗體子單元,用于實現(xiàn)進入或退出全屏播放狀態(tài)的一系列操作。
7.一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法,其特征在于,包括以下步驟瀏覽器根據(jù)頁面信息加載插件,并根據(jù)頁面腳本要求為插件創(chuàng)建托座;瀏覽器通過NPAPI協(xié)議將托座傳遞給插件;插件基于XEmbed協(xié)議,將待創(chuàng)建的主窗體嵌入瀏覽器托座,并保留該托座結(jié)構(gòu)中的相關信息;插件基于Xll底層協(xié)議,根據(jù)托座結(jié)構(gòu)信息,創(chuàng)建、映射并調(diào)整所有窗體;頁面腳本根據(jù)接收到的用戶請求,通過NPAPI調(diào)用插件的相應接口實現(xiàn)不同的響應; 插件基于實時傳輸協(xié)議和實時流傳輸協(xié)議,從設備獲取和控制視頻碼流;插件實現(xiàn)網(wǎng)絡視頻播放和本地繪制工作。
8.根據(jù)權(quán)利要求7所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法,其特征在于,在所述插件實現(xiàn)視頻播放和繪制工作的步驟之后,還包括以下步驟插件向頁面腳本主動發(fā)起事件,請求頁面腳本的進一步處理。
9.根據(jù)權(quán)利要求8所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法,其特征在于,在所述插件向頁面腳本主動發(fā)起事件,請求頁面腳本的進一步處理的步驟之前,還包括以下步驟插件操作文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索工作。
10.根據(jù)權(quán)利要求7所述的基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)的工作方法,其特征在于,在所述頁面腳本根據(jù)接收到的用戶請求,調(diào)用插件的相應接口實現(xiàn)不同的響應的步驟中,包括以下子步驟如果用戶的請求是請求預覽、回放、暫停、快慢放、單幀、繪制區(qū)域或屏幕菜單式調(diào)節(jié)方式信息操作,則進入所述插件從設備獲取和控制視頻碼流的步驟;如果用戶的請求是請求導入導出設備或本地配置、設備日志、下載錄像、遠程升級操作,則進入所述插件操作文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索工作的步驟;如果用戶的請求是請求錄像、抓圖操作,則需同時進入所述插件從設備獲取和控制視頻碼流的步驟和所述插件操作文件系統(tǒng),完成文件讀寫、磁盤分區(qū)參數(shù)檢索工作的步驟,協(xié)同完成工作;如果用戶的請求是請求重新設置播放窗口模式、獲取插件版本、錯誤值操作,則會調(diào)用瀏覽器交互單元中的相應子單元并將結(jié)果直接返回。
全文摘要
本發(fā)明涉及安防領域,公開了一種基于瀏覽器的智能網(wǎng)絡視頻監(jiān)控系統(tǒng)及其工作方法。本發(fā)明中,通過XEmbed協(xié)議將插件窗體嵌入瀏覽器托座,使監(jiān)控視頻的播放繪制可以跨越Linux的不同版本和不同瀏覽器;通過NPAPI框架和XEmbed協(xié)議實現(xiàn)插件與瀏覽器及頁面間的交互,屏蔽了不同瀏覽器和窗體管理器環(huán)境間的差異,為插件的開發(fā)、移植和維護帶來了便利;使用實時傳輸協(xié)議和實時流傳輸協(xié)議,以及瀏覽器和服務器結(jié)構(gòu)透明化的設計思想,為安防監(jiān)控行業(yè)的融合和標準化奠定了基礎。直接調(diào)用X11底層協(xié)議實現(xiàn)插件可視化,使監(jiān)控視頻的播放、交互與Linux系統(tǒng)的平臺相依性最小。
文檔編號H04N7/18GK102547231SQ20111036649
公開日2012年7月4日 申請日期2011年11月17日 優(yōu)先權(quán)日2011年11月17日
發(fā)明者吳飏, 張小媛, 施志萍, 石炎明 申請人:杭州??低晹?shù)字技術股份有限公司