視頻監(jiān)控系統(tǒng)是一個集計算機處理技術(shù)、網(wǎng)絡(luò)通信技術(shù)和數(shù)字音視頻編解碼技術(shù)于一身的綜合系統(tǒng)。作為一種成熟的多媒體應(yīng)用,視頻監(jiān)控逐步走向數(shù)字化、網(wǎng)絡(luò)化、綜合化、無線智能化的潮流中。
用戶普遍要求訪問地點不受地域限制,能隨時隨地訪問被監(jiān)控地點,這就要求系統(tǒng)設(shè)計一個合理的服務(wù)機制,能夠?qū)崟r提供給用戶可靠的服務(wù)。
提出了一種基于流媒體服務(wù)器的遠(yuǎn)程視頻監(jiān)控系統(tǒng),較好地解決了上述問題。結(jié)合流媒體技術(shù),就視頻監(jiān)控系統(tǒng)中涉及到的一些關(guān)鍵技術(shù)進(jìn)行討論,并提出實現(xiàn)方法,最終實現(xiàn)了該系統(tǒng),取得了較好的應(yīng)用效果。
1 系統(tǒng)整體框架
遠(yuǎn)程視頻監(jiān)控的主要分為3 大部分: 監(jiān)控端、服務(wù)器端和視頻采集端,如圖1 所示,下面將分別介紹各個部分的功能。
視頻采集端主要由攝像機、電動鏡頭、云臺、WIFI 模塊、SD 卡等模塊組成,主要負(fù)責(zé)音視頻數(shù)據(jù)的采集和傳輸。主要功能如下: ① 采集編碼部分:將現(xiàn)場采集到的音視頻數(shù)據(jù)進(jìn)行壓縮編碼; ② 數(shù)據(jù)傳輸部分: 將壓縮完成的音視頻數(shù)據(jù)傳送到流媒體服務(wù)器; ③ 移動偵測部分: 進(jìn)行移動偵測的功能,并將移動圖像存入到 SD 卡中; ④ PTZ 控制部分: 根據(jù)監(jiān)控端的控制指令,進(jìn)行 PTZ 控制; ⑤ 報警部分: 完成報警功能。
圖1 遠(yuǎn)程視頻監(jiān)控整體構(gòu)架圖
服務(wù)器端主要完成音視頻數(shù)據(jù)的分組轉(zhuǎn)發(fā)、視頻數(shù)據(jù)存儲、設(shè)備管理、用戶管理、權(quán)限管理和日志管理等功能。
監(jiān)控端主要實現(xiàn)視頻監(jiān)控功能,分為 PC 監(jiān)控端和移動監(jiān)控端。用戶可以使用任何一臺聯(lián)網(wǎng) PC機或者移動端當(dāng)做監(jiān)控端,隨時隨地能調(diào)用本系統(tǒng)各監(jiān)控點的視頻數(shù)據(jù),并進(jìn)行 PTZ 控制。
2 遠(yuǎn)程監(jiān)控系統(tǒng)的實現(xiàn)
2. 1 服務(wù)器端
服務(wù)器端主要包括流媒體服務(wù)器、Web 服務(wù)器以及存儲管理服務(wù)器。其中流媒體服務(wù)器主要提供視頻直播、點播等功能。Web 服務(wù)器主要提供用戶統(tǒng)一的 Web 頁面和 Web Service 接口。存儲管理服務(wù)器負(fù)責(zé)視頻數(shù)據(jù)的存儲與調(diào)度。
2. 1. 1 流媒體服務(wù)器
流媒體服務(wù)器的主要功能是以流式協(xié)議( RTSP、MMS、RTMP 等) 將視頻文件以流媒體形式傳輸?shù)娇蛻舳?,供用戶在線觀看; 也可從視頻采集、壓縮軟件接收實時視頻流,再以流媒體形式直播給客戶端。流媒體應(yīng)用系統(tǒng)的主要性能取決于流媒體服務(wù)器的性能和服務(wù)質(zhì)量 。因此,流媒體服務(wù)器是流媒體應(yīng)用系統(tǒng)的基礎(chǔ),選擇一款性能優(yōu)越的服務(wù)器是該系統(tǒng)的關(guān)鍵。
Wowza Media Server 是一款高性能、多線程的流媒體服務(wù)器軟件。專為多種終端設(shè)備提供音視頻播放服務(wù),支持 iOS、Windows、Android、BlackMerry 等主流系統(tǒng)的終端設(shè)備,開發(fā)者可以根據(jù)不同的應(yīng)用環(huán)境,選擇 RTSP、RTMP、HTTP Live Streaming 等不同的傳輸協(xié)議; Wowza Media Server 支持 H. 264 編碼標(biāo)準(zhǔn)進(jìn)行封裝的 FLV、MP4、MOV、3GP 等音視頻格式; Wowza Media Server 能夠記錄實時流,同時允許用戶播放、暫停、恢復(fù)和實時回放直播流。
Wowza Media Server 提供了強大的接口功能,可以方便實現(xiàn)二次開發(fā)。在本系統(tǒng)中,流媒體服務(wù)器需要主動接收采集端傳輸?shù)囊曨l數(shù)據(jù)實現(xiàn)直播,并通過配置命令的形式,對數(shù)據(jù)進(jìn)行存儲,該功能的實現(xiàn)是對 Wowza Media Server 流媒體服務(wù)器一個擴展的過程,實現(xiàn)方法如下: ① 攝像頭首先發(fā)送一個心跳包到流媒體服務(wù)器,表示此時在線; ② 攝像頭向流媒體服務(wù)器發(fā)送數(shù)據(jù),流媒體服務(wù)器接收到數(shù)據(jù)之后,根據(jù)攝像頭序列號生成不同的映射文件,并將相應(yīng)的數(shù)據(jù)寫入數(shù)據(jù)庫。如果攝像頭 IP 地址發(fā)生變化,會重復(fù)執(zhí)行上述步驟; ③ 流媒體服務(wù)器與存儲管理服務(wù)器交互,對視頻數(shù)據(jù)進(jìn)行保存。
2. 1. 2 Web 服務(wù)器
Web 服務(wù)器主要提供用戶統(tǒng)一訪問入口以及Web Service 接口功能。本系統(tǒng)采用 Struts + Hibernate + Spring 技術(shù),結(jié) 合 ExtJS 框架,開發(fā)了一套Web 工程,實現(xiàn)了以下幾個功能: ① 用戶管理: 包括添加、刪除、修改、查詢用戶的功能; ② 權(quán)限管理: 包括添加、刪除、修改、查詢權(quán)限的功能; ③ 設(shè)備管理:包括添加、刪除、修改、查詢攝像頭的功能; 重啟重置攝像頭功能; PTZ 控制功能; ④ 日志管理: 包括用戶所有操作日志存儲以及日志查詢功能; ⑤ 直播列表獲取: 獲取當(dāng)前登陸用戶所有在線攝像頭列表,用于視頻直播; ⑥ 點播列表獲取: 根據(jù)用戶、IP 攝像頭、文件創(chuàng)建日期查詢視頻點播列表,用于視頻點播;⑦ 在網(wǎng)頁中嵌入 Flash 播放器,用于播放視頻;⑧ 提供移動端 Web Service 訪問接口,用于移動監(jiān)控。
2. 1. 3 存儲管理服務(wù)器
存儲管理服務(wù)器提供對監(jiān)控系統(tǒng)下各種存儲方案的統(tǒng)一管理,是監(jiān)控綜合平臺下的存儲系統(tǒng)的管理核心,簡稱 VRM。VRM 可管理前端設(shè)備存儲、網(wǎng)絡(luò)服務(wù)器存儲、嵌入式服務(wù)器存儲及 iSCSI 直寫存儲等多種存儲方式,并提供了快速高效的錄像數(shù)據(jù)的檢索、回放及備份功能。
VRM 實現(xiàn)了錄像計劃的配置、錄像計劃的同步、錄像數(shù)據(jù)的查詢及回放、網(wǎng)絡(luò)存儲服務(wù)器的管理、IP-SAN 設(shè)備的管理等功能。錄像計劃的配置、更新和刪除操作均由客戶端發(fā)送信令至 Web 服務(wù)器,再由 Web 服務(wù)器轉(zhuǎn)發(fā)至 VRM,最后由 VRM 依據(jù)存儲類型等分發(fā)至其管理的各個存儲服務(wù)器。同時 Web 服務(wù)器與 VRM 之間實現(xiàn)了定時同步機制,保證了錄像計劃的一致性。
客戶端的回放可以從存儲設(shè)備直接取流或者通過 VRM 與流媒體服務(wù)器提供的點播服務(wù)來進(jìn)行。回放請求時,客戶端不用明確了解系統(tǒng)采用的存儲方式,即可實現(xiàn)對錄像的查詢與回放,VRM 服務(wù)器為客戶端和存儲設(shè)備之間架起了一座橋梁。
2. 2 Flash Player 實現(xiàn)
為了減輕監(jiān)控端操作的負(fù)擔(dān),增強系統(tǒng)的可維護(hù)性,本系統(tǒng)中將使用 Flash Player 作為 PC 端的播放器。為了實現(xiàn)基于 Web 服務(wù)器的 B/S 的監(jiān)控機制,本系統(tǒng)將監(jiān)控畫面做成 JSP 頁面,并且把所有網(wǎng)頁放入 Web 服務(wù)器用于用戶訪問。在 JSP 頁面中必須提供Flash Player 插件的classid 和文件路徑,如果本機的注冊表中查找到該 classid,則不必下載。否則必須按照codebase 指定的路徑下載該控件。標(biāo)簽中的 id 是該 Flash Player 對象的名稱,用于訪問和設(shè)置對象屬性、調(diào)用對象方法,加載方法如下。< object" width = "636" height = "470" id = " liveOrVOD" align = "middle"classid = "clsid: d27cdb6e - ae6d - 11cf - 96b8- 444553540000 " codebase = " http: / /download. macromedia. com/pub/shockwave/cabs/flash/swflash. cab#version =9,0,0,0”> < /object >。
2. 3 視頻存儲方案實現(xiàn)
視頻存儲模塊作為本系統(tǒng)的一個重要環(huán)節(jié),主要負(fù)責(zé)將采集端傳送來的視頻數(shù)據(jù),根據(jù)用戶工號、IP 攝像頭編號、日期等因素存儲起來,以便響應(yīng)客戶端的點播請求。監(jiān)控平臺系統(tǒng)中常采用的存儲方案有以下4 種: 前端設(shè)備存儲、網(wǎng)絡(luò)服務(wù)器存儲、嵌入式服務(wù)器存儲以及 iSCSI 直寫存儲,選擇了 iSCSI直寫存儲。iSCSI 直寫存儲主要有 NAS、SAN、IP-SAN 3 種方式,本系統(tǒng)采用 IP-SAN。IP-SAN 結(jié)合了NAS 與 SAN 的特點,實現(xiàn)了塊級數(shù)據(jù)在 IP 網(wǎng)絡(luò)上的傳輸。iSCSI 直寫存儲方式是通過存儲管理服務(wù)器協(xié)調(diào)控制,在IP-SAN 設(shè)備上劃分出指定大小的存儲空間用于音視頻信息保存。流媒體服務(wù)器將采集端傳輸?shù)臄?shù)據(jù)傳送到存儲服務(wù)器,存儲服務(wù)器通過iSCSI 協(xié)議把音視頻數(shù)據(jù)直接寫到相應(yīng)的存儲設(shè)備中,并把記載有音視頻信息相關(guān)的索引上報給存儲管理服務(wù)器用于視頻數(shù)據(jù)檢索。該存儲方式只需要存儲管理服務(wù)器協(xié)調(diào),就可以完成視頻數(shù)據(jù)的存儲。iSCSI 直寫存儲流程圖如圖2 所示。
圖2 iSCSI 直寫存儲流程圖
2. 4 監(jiān)控端實現(xiàn)
遠(yuǎn)程監(jiān)控系統(tǒng)采用流媒體技術(shù),將聲音、影像等媒體信息經(jīng)流媒體服務(wù)器向監(jiān)控端用戶實時傳送,在本系統(tǒng)中監(jiān)控端主要分為 PC 端和移動端。
PC 監(jiān)控端采用 B/S 結(jié)構(gòu),用戶使用系統(tǒng)自帶的瀏覽器訪問本系統(tǒng),由于客戶端需要使用 AdobeFlash Player 播放器,所以PC端只需安裝 AdobeFlash Player 軟件,即可通過瀏覽器訪問該系統(tǒng)。
移動監(jiān)控端采用C/S 結(jié)構(gòu),通過Web Service 接口獲得數(shù)據(jù),實現(xiàn)移動監(jiān)控。該客戶端主要由通訊模塊,解碼模塊以及視頻顯示模塊構(gòu)成。其中通訊模塊用來接收來自 Web 服務(wù)器返回的 json 數(shù)據(jù),并對數(shù)據(jù)進(jìn)行解析,將數(shù)據(jù)顯示到客戶端。視頻解碼模塊通過移植 vlc 源代碼,實現(xiàn) H. 264 解碼,最后將解碼后的視頻數(shù)據(jù)顯示在屏幕上實現(xiàn)監(jiān)控的目的。
3 結(jié)束語
實現(xiàn)了基于流媒體技術(shù)的遠(yuǎn)程視頻監(jiān)控系統(tǒng),它采用計算機多媒體技術(shù)、數(shù)字視頻處理技術(shù)、網(wǎng)絡(luò)通信技術(shù)和音視頻編解碼技術(shù),以計算機或移動端為平臺,以磁盤陣列為存儲介質(zhì),實現(xiàn)音視頻信號的實時采集、存儲以及播放功能,打破了傳統(tǒng)監(jiān)控系統(tǒng)的限制。
隨著技術(shù)以及業(yè)務(wù)的不斷發(fā)展,基于流媒體技術(shù)的視頻監(jiān)控系統(tǒng)對傳輸質(zhì)量、傳輸速度以及其他各方面的要求更高。如何更好地綜合利用網(wǎng)絡(luò)通信、編解碼技術(shù)在大規(guī)模訪問中進(jìn)行資源調(diào)度與管理,是本文需要進(jìn)一步研究的目標(biāo)。