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