隨著全球安防監(jiān)控產(chǎn)業(yè)需求和相關(guān)技術(shù)的迅猛發(fā)展,數(shù)字圖像壓縮處理、流媒體技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)通信、自動(dòng)控制技術(shù)等都已在安防領(lǐng)域得到廣泛應(yīng)用。本文筆者將帶領(lǐng)讀者,一起探究流媒體監(jiān)控軟件平臺(tái)架構(gòu)及關(guān)鍵技術(shù)...
軟件平臺(tái)架構(gòu)
軟件架構(gòu)目標(biāo)
Observer流媒體監(jiān)控軟件平臺(tái)要達(dá)到能滿足中小型網(wǎng)絡(luò)安防監(jiān)控的目標(biāo),可根據(jù)不同行業(yè)安防需求定制擴(kuò)展應(yīng)用,因此必須有良好的架構(gòu)設(shè)計(jì)。軟件設(shè)計(jì)的架構(gòu)目標(biāo)一般要達(dá)到以下幾點(diǎn)(圖1)。
· 可靠性:軟件對(duì)于使用方的運(yùn)營(yíng)和管理十分重要,因此必須十分可靠;
· 安全性:軟件要能滿足調(diào)查取證要求和防止惡意破壞;
· 可擴(kuò)展性:軟件要能滿足客戶需求的變化和不同需求的功能擴(kuò)展;
· 可維護(hù)性:軟件要易于排除現(xiàn)有系統(tǒng)錯(cuò)誤和有效降低技術(shù)支持成本;
· 可定制化:能夠根據(jù)客戶群不同和市場(chǎng)變化而調(diào)整;
· 客戶體驗(yàn):軟件要易于操作使用。
軟件體系結(jié)構(gòu)
良好的體系結(jié)構(gòu)能夠確保軟件的實(shí)用性,軟件基于以下技術(shù)原理開(kāi)發(fā)(圖1)。
1、MPEG2/MPEG4/H.264流媒體編解碼技術(shù)。
2、實(shí)時(shí)網(wǎng)絡(luò)流媒體傳輸技術(shù)。
3、Microsoft DirectShow技術(shù)。
4、分布式網(wǎng)絡(luò)應(yīng)用技術(shù)。
5、現(xiàn)代大型關(guān)系型數(shù)據(jù)庫(kù)技術(shù)。
6、基于面向?qū)ο蟮拈_(kāi)發(fā)思想,采用高效的C++開(kāi)發(fā)語(yǔ)言平臺(tái)。
· OS(Operating System):操作系統(tǒng),此處主要指PC操作系統(tǒng);
· TCP/IP:傳輸控制協(xié)議/網(wǎng)際協(xié)議,一種網(wǎng)絡(luò)通信協(xié)議,廣泛應(yīng)用于互聯(lián)網(wǎng)和局域網(wǎng)通信;
· MPEG2/ MPEG4/H.264:運(yùn)動(dòng)圖像壓縮編碼標(biāo)準(zhǔn);
· DirectX:微軟公司開(kāi)發(fā)的用途廣泛的API,用于圖形、聲音等多媒體應(yīng)用接口;
· Winsock:一套開(kāi)放的、支持多種協(xié)議的Windows下的網(wǎng)絡(luò)編程接口;[nextpage]
· Oracle/SQL/MySQL:一些關(guān)系型數(shù)據(jù)庫(kù)平臺(tái);
· Middleware Service:中間件服務(wù),此處包括數(shù)據(jù)庫(kù)中間件、消息中間件服務(wù);
· Management Server:管理服務(wù)器;
· StreamTrans Server:流媒體轉(zhuǎn)發(fā)服務(wù);
· StreamRecord Server:流媒體存儲(chǔ)服務(wù);
· WEB Server:WEB服務(wù);
· Stream Client:流媒體監(jiān)控客戶端;
· WEB Client:WEB客戶端。
關(guān)鍵技術(shù)
網(wǎng)絡(luò)流媒體監(jiān)控技術(shù)
通過(guò)網(wǎng)絡(luò)流媒體監(jiān)控技術(shù),系統(tǒng)借助日益擴(kuò)展的高速信息網(wǎng)絡(luò)為傳輸媒介,使用者可通過(guò)網(wǎng)絡(luò)音視頻去感知遠(yuǎn)程監(jiān)控點(diǎn)的狀況。借助遠(yuǎn)端設(shè)備的智能采集、控制功能,使用者可捕獲遠(yuǎn)端的報(bào)警,通過(guò)網(wǎng)絡(luò)控制遠(yuǎn)端設(shè)備控制輸出。
完成端口通訊技術(shù)
普通的阻塞式網(wǎng)絡(luò)通訊方法要求每次通訊完成后都要求等待執(zhí)行結(jié)果。網(wǎng)絡(luò)流媒體轉(zhuǎn)發(fā)軟件所處理的流數(shù)據(jù)量是非常巨大的,普通的網(wǎng)絡(luò)通訊方法顯然不能滿足這種應(yīng)用的需要,為了提高轉(zhuǎn)發(fā)服務(wù)器的數(shù)據(jù)吞吐能力,系統(tǒng)使用了異步IO技術(shù)完成端口通訊。
IO完成端口通訊使用操作系統(tǒng)的重疊I/O模型來(lái)提高系統(tǒng)I/O的處理能力。在Winsock中,重疊I/O模型使應(yīng)用程序能達(dá)到最佳的系統(tǒng)性能與數(shù)據(jù)吞吐率。重疊模型的基本設(shè)計(jì)原理是讓應(yīng)用程序使用重疊的數(shù)據(jù)結(jié)構(gòu),一次投遞一個(gè)或多個(gè)Winsock的I/O請(qǐng)求,并在操作完成之后接受到信息。
線程池
線程池為線程生命周期開(kāi)銷問(wèn)題和資源不足問(wèn)題提供了解決方案。通過(guò)對(duì)多個(gè)任務(wù)重用線程,線程創(chuàng)建的開(kāi)銷被分?jǐn)偟搅硕鄠€(gè)任務(wù)上。其好處是,因?yàn)樵谡?qǐng)求到達(dá)時(shí)線程已經(jīng)存在,所以無(wú)意中也消除了線程創(chuàng)建所帶來(lái)的延遲。這樣,就可以立即為請(qǐng)求服務(wù),使應(yīng)用程序響應(yīng)更快。
異步通訊模式下的單線程并發(fā)訪問(wèn)量是有限的,為了提高轉(zhuǎn)發(fā)服務(wù)器的并發(fā)訪問(wèn)數(shù)量,系統(tǒng)使用一個(gè)具有多個(gè)通訊線程的線程池來(lái)負(fù)責(zé)與客戶端進(jìn)行通訊。通過(guò)使用線程池技術(shù),在保證轉(zhuǎn)發(fā)服務(wù)器的數(shù)據(jù)吞吐量的同時(shí),提高了系統(tǒng)的并發(fā)訪問(wèn)數(shù)量,在網(wǎng)絡(luò)帶寬足夠的情況下,可以顯著提高流媒體轉(zhuǎn)發(fā)服務(wù)器的處理能力。
網(wǎng)卡匯聚及任務(wù)調(diào)度設(shè)計(jì)
當(dāng)流媒體轉(zhuǎn)發(fā)服務(wù)器工作在多網(wǎng)卡匯聚模式時(shí),優(yōu)化的實(shí)時(shí)任務(wù)調(diào)度算法將根據(jù)各網(wǎng)卡的實(shí)時(shí)負(fù)載情況平均分配各塊網(wǎng)卡的并發(fā)訪問(wèn)數(shù)與數(shù)據(jù)吞吐量,以平衡各網(wǎng)卡的網(wǎng)絡(luò)負(fù)載情況。
相關(guān)文章:
淺析現(xiàn)代安防監(jiān)控的發(fā)展趨勢(shì)
淺析流媒體監(jiān)控軟件功能及概述