視頻監控技術在政治、經濟、軍事、文化設施的安全防范中有著舉足輕重的作用,隨著多媒體和計算機網絡技術的發展,視頻監控系統經歷了模擬監控和數字監控的發展階段,目前已到了網絡數字視頻監控階段。本文介紹的遠程監控系統,可利用現有IP網絡實現遠程監控和控制攝像頭的調焦、云臺轉動等,可滿足無人值守的要求,實現了功能強大、易于操作的監控解決方案。
1 系統總體結構
本網絡遠程監控系統由攝像機、網絡視頻服務器、網絡遠程客戶端構成。前端將各個監控點所有視頻、音頻、報警等信號直接通過網絡接入到監控中心,實現網絡顯示前端視頻圖像、錄像存儲、回放、云臺控制等功能。本監控系統無論在本地還是網絡控制端部通過網絡傳輸視頻圖像。所有的操作和功能都是在管理計算機上安裝監控軟件來實現,如顯示、錄像、各種控制等。任一被授權的網絡客戶端能夠通過網絡平臺實現對本地端的網絡遠程監看、錄像存儲、云臺控制等操作,可實現權限管理。采用口前圍際領先的H.264高壓縮技術,大大提高壓縮比及網絡傳輸效果,每路均可 達到全實時顯示/錄像;自動適應帶寬并配置資源,優化網絡傳輸速度快,提高播放畫質,減少網絡延時;系統支持多個分控端對一個主控端的同時遠程訪問,或多個分控端對多個主控端同時遠程訪問,各點之間相互獨立,互不干擾;可設置分控權限,通過不同密碼使分控端享有不同操作權限,以區分管理層次,加強管理的安全性。
2 網絡視頻服務器結構
在本系統中選用的剛絡視頻服務器采用H.264硬件壓縮技術,它集1路或4路音、視頻采集、實時壓縮、網絡傳輸、聯動報警等功能為一體,即插即看,用戶可以利用客戶端軟件或IE瀏覽器直接通過Internet或局域網實時觀看視頻服務器傳送的圖像。
每臺視頻服務器均有獨立的IP地址,可同時接入4路視頻信號和音頻信號,經過處理后轉換為IP包,利用寬帶局域網和TCP/IP協議把這些數據包發送給監控中心的視頻主機(PC機)或網上授權用戶。視頻主機上運行Client端監控軟件,可實現1/4/9/16畫面的實時視頻監控,也可驅動顯示器陣列進行大屏幕顯示。其他授權用戶可通過IE瀏覽器進行一般性的監看。
3 系統軟件結構設計
本軟件采用模塊化程序設計及客戶/服務器模式設計,模塊間通過接口(函數調用)傳遞數據。
3.1 服務器端軟件結構
服務器端軟件主要由主控模塊、視頻采集模塊、監視控制模塊、系統設置/用戶設置模塊、信息查詢模塊、視頻信息處理模塊和網絡傳輸模塊構成。它主要實現多媒體數據的采集、壓縮、回放、存儲、發送、信息的處理和查詢等功能。
主控模塊主要是控制各個模塊的正常運行,對各個模塊進行有效的管理,進行一些如初始化系統等必要的工作。
為了減輕CPU負擔,我們采用了硬件方式實現視頻數據的采集和壓縮。視頻卡以每秒30幀來捕獲動態圖像。采集后的視頻數據分為兩路,一路直接送到顯示緩沖區中進行本地顯示,另一路則由硬件壓縮后存儲在本地硬盤上,或同時傳輸到客戶端,從而實現視頻圖像的實時采集、傳輸與顯示。
監視控制模塊的主要功能就是將各種前端的動作進行編碼然后發送到前端,從而實現對前端攝像頭的云臺控制和鏡頭控制。
在系統設置/用戶設置模塊中允許超級用戶修改任意用戶的密碼,還可以增加用戶、刪除用戶和給其他用戶分配權限。系統共有三種權限級別可供選擇:“系統管理員”、“普通管理員”、“普通操作員”。每一種級別都己經分配了默認的權限。
視頻信息處理模塊包括視頻文件的播放、存儲、刪除、抓圖等子功能。
信息查詢模塊主要包括視頻文件、圖片和日志的查詢等功能。系統在保存視頻文件時,以文件創建的時間作為文件名的一部分,并且不同的攝像機所攝的視頻文件保存在不同的目錄中。這樣在文件列表中可以方便的實現按年、月、日、時間段及攝像機來查詢視頻文件。
網絡傳輸模塊可以使客戶端軟件能通過LAN或Internet共享主控服務器的信息,它是利用Socket為客戶機和服務器程序提供不同的socket系統調用來實現信息共享的。
3.2 客戶端軟件結構
通過客戶端軟件分布在LAN或Internet上的遠程客戶機就可以實現視頻信息共享和遠程控制等操作。該部分采用C/S(客戶/服務器)模式設計,其實現功能由客戶端軟件和服務器端軟件中的剛絡傳輸模塊兩部分共同完成。
客戶端軟件上要包括主控模塊、登錄模塊、播放模塊、遠程下載模塊、實時傳輸模塊、遠程控制模塊等。
上控模塊主要是控制各個模塊的正常運行,對各個模塊進行有效的管理,進行一些如初始化系統等必要的工作。
登錄模塊主要是使用用戶名和密碼等方式使不同級別的用戶擁有不同的權限,從而有效的實現安全控制,使非法用戶不能進入系統。
播放模塊包括本地播放和遠程播放等功能。視頻文件的播放是采用DirectShow實現的,由過濾器表管理器自動生成過濾器表來播放視頻文件。我們可以設計封裝一個類CMediaPlay,在該類中封裝許多函數,比如播放視頻文件的P layFromFile()函數,控制播放的PausePlay()、ResumePlay()、STopPlay()等函數。
遠程下載模塊實現的主要功能是把遠程服務器(主控機)上的視頻文件等下載到本地客戶端。
實時傳輸模塊主要功能就是把主控計算機實時采集的視頻信號在基本不失真的情況下實時的傳輸到發出實時傳輸請求的客戶端,并由播放模塊顯示出來。
遠程控制模塊的主要功能是在客戶端實現對主控服務器的部分控制。例如可以在客戶端實現對云臺和監控效果的設置。其設計思想是對控制內容進行分類編碼,客戶端在編碼后邊加上控制參數,然后把它傳輸到服務器端;服務器進程收到數據后,從中分解出編碼和參數,然后調用相應的功能函數實現對目標的控制。在本模塊中由于傳輸的是控制命令,為保證傳輸的可靠性,我們采用基于 TCP協議的面向連接的通信方式。為了避免控制沖突,本模塊要求在任一時刻只允許一個用戶對云臺和監控效果實施控制。因此在服務器端,對于這一端口只接受一個用戶的連接請求,一旦建立連接,則把在服務器端對這兩個部分的控制功能置為無效狀態;當斷開連接后,再把它們恢復為有效狀態。為避免客戶端長時間處于控制狀態而導致其他用戶無法進入控制狀態,在本模塊中置有一個定時器。當連接建立時啟動定時器,開始計時;當用戶按動鍵盤或鼠標任一鍵時,計時器歸零,重新開始計時;當計時器計到一定時間后,自動斷開連接并關閉控制對話框。
4 軟件設計關鍵技術
4.1 通信協議的選擇
TCP協議負責數據的流量控制,保證傳輸的正確性,具有數據重發功能,傳輸延遲造成抖動將使實時通信的質量嚴重下降,不適合實時通信。所以在INTERNET上傳送多媒體信息時,采用的都是UDP/IP協議,而UDP和IP均不提供鏈接保證,數據傳輸的可靠性沒有保障。所以這里采用了應用比較廣泛的RTP/RTCP(實時傳輸協議/實時傳輸控制協議)。
RTP提供端對端網絡傳輸功能,適合通過組播傳送實時數據流,RTP報文格式中包括固定的RTP報文頭、可選用的作用標識(CSRC)和負載數據。RTP本身并不能為按順序傳送數據包提供可靠的傳送機制,也不提供流量控制和擁塞控制,它依靠RTCP提供這些服務。RTCP包的數量占所有傳輸量的百分之五。
在數據平面,服務器端將壓縮打包后的音頻、視頻數據按照RTP的報文格式裝入RTP報文的數據負載段,同時配置RTP報文頭部的時間戳、同步信息、序列號等重要參數,此時的數據報文已經具有典型的時間特征,即被“流化”了。在UDP/TCP層,RTP報文作為負載數據裝入UDP/TCP報文中,最后,由IP層負責最后的報文頭部配置,實現網絡傳輸。在客戶端,實現方式相反,各網絡層依次去除報文頭部,并讀取相關的控制參數和時間參數,最終獲取可以實時播放的音頻,視頻數據。
4.2 組播技術
如果用單播傳輸技術來實現監控視頻的多點傳輸,則需要在發送者和每個接受者之間占用單獨的數據信道來傳輸數據量巨大的實時視頻數據,這將導致發送者負擔沉重、延遲長、網絡擁塞。而采用廣播又極易造成網絡帶寬的大幅占用,影響整個網絡的通信效率。IP組播技術是目前能夠最大限度地利用現有網絡帶寬資源的一種有效方法。
組播指的是在Internet上對一組IP站點進行數據發送,所有加入該組的接收者都可以接收到該信息。這一組IP站點是動態形成的,每一個IP站點都是可以動態地加入或退出。每臺主機可以同時加入到多個組中。IGMP,是IP組播通信專用的Internet組管理協議,用于管理組成員加入或脫離組播組。
4.3 Winsock對組播技術的實現
Winsock是一個基于socket模型的Windows API集,Windows Sockets API是Windows的網絡程序設計接口,Windows Socket規范定義并記錄了如何使用API與互聯網協議簇鏈接,支持流套接字和數據套接字。應用程序調用Windows Sockets API實現相互之間的通信,Windows Sockets又利用下層的網絡通信協議功能和操作系統調用實現實際的通信工作。
Winsock包括Winsock1和Winsock2兩種類型,每一種類型都定義了一組應用程序IP組播接口函數,在實際的編程應用中??赏ㄟ^Winsock提供的一系列應用程序接口來實現IP組播。本系統采用Winsock1實現IP組播通信,主要過程如下:
?。?) 用Socket函數創建一個數據報套接字;
(2) 如果從組播組內接收數據,則利用Bind函數將套接字關聯到一個本地端口上;這里要注意的是:不要采用小于1024的端口號,因為所有小于1024的端口號都被系統保留。在沒有被別的程序使用的情況下,可以選擇從1024到65535的端口。如果只發送數據,則不需要這一步;
?。?) 采用IP MulTIcast-TIL,調用setsocketopt函數毆置TIL;
?。?) 設置IP Add Membership選項和要加入的組播組地址結構,調用setsocketopt函數加入指定的組播組;如打算只發送數據,則不必加入一個播組;
?。?) 調用Sendto函數發送組播數據,調用RecvFrom函數接收組播數據;
?。?) 設置IP-Drop-Membership選項和要脫離的組播組地址結構,調用setsocketopt函數脫離指定的組播組。
隨著互聯網技術的發展,人們對遠程監控系統的圖像和聲音質量都提出了更高的要求,本系統不但能提供良好的畫面質量,而且能提供音質極佳的聲音,該系統具有結構合理、功能完善、運行可靠等特點,能夠廣泛應用于銀行、倉庫、居民小區等場合的安防監控和電力電站、電信基站等無人值守場合。
評論
查看更多