基于嵌入式WEB的視頻服務(wù)器的設(shè)計
1.前言
當(dāng)前的信息化時代,是一個構(gòu)筑在網(wǎng)絡(luò)基礎(chǔ)之上的時代?;赥CP/IP協(xié)議的IP網(wǎng)絡(luò),像Inter-net、Intranet與Extranet等以令人驚異的不可阻擋之勢發(fā)展著。而以網(wǎng)絡(luò)為基礎(chǔ)的數(shù)字視頻監(jiān)控系統(tǒng)是視頻監(jiān)控系統(tǒng)發(fā)展的主流,隨著微處理器技術(shù)、計算機(jī)網(wǎng)絡(luò)技術(shù)的進(jìn)步,基于嵌入式WEB的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)逐漸得到了人們的廣泛關(guān)注。
2. 基于嵌入式WEB技術(shù)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)特征及原理
本視頻服務(wù)器具有以下的一些特征。
采用嵌入式實(shí)時操作系統(tǒng)和專用的硬件結(jié)構(gòu),無論是軟件還是硬件都保證了嵌入式網(wǎng)絡(luò)視頻服務(wù)器比基于PC機(jī)的系統(tǒng)具有更高的實(shí)時性、穩(wěn)定性和可靠性??梢苑奖愕穆?lián)動其他安全防范設(shè)備,如濕度、溫度、煙感等報警器。本視頻服務(wù)器使用MPEG-4視頻壓縮技術(shù),與MJPEG和H.263等壓縮方式比,具有壓縮比高、碼流小、圖像質(zhì)量好等優(yōu)點(diǎn),特別適合于Internet環(huán)境下的實(shí)時監(jiān)控,并且可以節(jié)省存儲空間。
嵌入式WEB的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的主要原理是:嵌入式視頻服務(wù)器采用嵌入式實(shí)時操作系統(tǒng),內(nèi)置嵌入式WEB服務(wù)器,攝像機(jī)傳送過來的視頻信號經(jīng)高效壓縮芯片壓縮后,通過內(nèi)部總線傳送到內(nèi)置的WEB服務(wù)器。用戶在監(jiān)控端可以直接通過瀏覽器觀看WEB服務(wù)器上的攝像機(jī)視頻圖像,授權(quán)用戶還可以控制攝像機(jī)云臺鏡頭的動作。本文所述的監(jiān)控系統(tǒng)的原理圖如圖1所示。
本系統(tǒng)由攝像機(jī)、嵌入式WEB服務(wù)器、傳輸網(wǎng)絡(luò)和監(jiān)控端組成。攝像機(jī)用來采集監(jiān)控現(xiàn)場的視頻。嵌入式WEB服務(wù)器是整個監(jiān)控系統(tǒng)的核心,有硬件和軟件兩個部分,詳細(xì)結(jié)構(gòu)將在下面分別介紹。其主要功能包括:為監(jiān)控端提供WEB訪問頁面;對監(jiān)控端的訪問進(jìn)行有效性、安全性檢查;響應(yīng)監(jiān)控端的請求,為監(jiān)控端提供所需要的視頻圖像;接收監(jiān)控端的控制信息,經(jīng)過軟硬件轉(zhuǎn)換后對攝像機(jī)進(jìn)行控制。每個服務(wù)器有自己的IP地址,在監(jiān)控端可以通過瀏覽器界面訪問服務(wù)器。監(jiān)控端的功能則是顯示現(xiàn)場視頻,并根據(jù)需要向服務(wù)器發(fā)送視頻請求以及對攝像機(jī)的控制信號。
圖 1 嵌入式視頻監(jiān)控系統(tǒng)示意圖
3. 嵌入式 WEB 服務(wù)器的硬件結(jié)構(gòu)
嵌入式WEB服務(wù)器的硬件結(jié)構(gòu)如圖2所示。其主要由CPU芯片、MPEG-4音視頻編碼芯片、Flash芯片、SDRAM內(nèi)存、以太網(wǎng)絡(luò)接口、大容量硬盤組成。其中CPU采用MOTOROLA公司的PowerPC系列嵌入式通信處理器MPC8250。MPEG-4音視頻編碼芯片完成對從攝像頭傳送過來的視頻數(shù)據(jù)的壓縮和編碼。根據(jù)網(wǎng)絡(luò)帶寬、拓?fù)浣Y(jié)構(gòu)以及對圖像質(zhì)量的要求,本系統(tǒng)選用基于MPEG-4標(biāo)準(zhǔn)的分層可擴(kuò)展性編碼方案。壓縮后的視頻數(shù)據(jù)根據(jù)需要,可以存儲在大容量硬盤中,或者通過以太網(wǎng)進(jìn)行網(wǎng)絡(luò)傳輸。為了實(shí)現(xiàn)視頻存儲功能,需要采用大容量的硬盤。
圖 2 嵌入式 WEB 服務(wù)器的硬件結(jié)構(gòu)
4. 嵌入式 WEB 服務(wù)器的軟件系統(tǒng)
嵌入式WEB服務(wù)器的軟件設(shè)計與實(shí)現(xiàn)是本系統(tǒng)實(shí)現(xiàn)的關(guān)鍵之一,包括嵌入式操作系統(tǒng)與應(yīng)用軟件兩大部分。
4.1 嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)是支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,是在系統(tǒng)實(shí)時性、硬件相關(guān)性、軟件固態(tài)化等方面有著突出特點(diǎn)的專用操作系統(tǒng)。本系統(tǒng)采用嵌入式LINUX操作系統(tǒng),它是在根據(jù)系統(tǒng)需要對LINUX操作系統(tǒng)進(jìn)行小型化裁剪與實(shí)時化的基礎(chǔ)上實(shí)現(xiàn)的。使用LINUX的優(yōu)勢在于:其操作系統(tǒng)的源代碼是開放的,可根據(jù)需要進(jìn)行定制;系統(tǒng)內(nèi)核小,因而對硬件的要求相對要低;支持多任務(wù)多進(jìn)程,能提供較好的實(shí)時性。
[!--empirenews.page--]4.2 應(yīng)用軟件
服務(wù)器的應(yīng)用軟件結(jié)構(gòu)如圖3所示。其主要由WEB服務(wù)器、CGI程序、嵌入式數(shù)據(jù)庫mSQL、視頻調(diào)度與傳輸模塊、存儲管理與調(diào)度模塊、攝像機(jī)控制模塊等幾個重要部分組成。
4.2.1 WEB服務(wù)器與CGI程序
WEB服務(wù)器通過HTTP協(xié)議與監(jiān)控端瀏覽器軟件進(jìn)行信息交互,提供其他應(yīng)用程序模塊的接口以及視頻數(shù)據(jù)瀏覽界面和攝像機(jī)控制界面。此外,它還要對監(jiān)控端的訪問權(quán)限進(jìn)行控制,過濾監(jiān)控端的請求和控制信息,處理多個監(jiān)控端的請求和控制的同步和優(yōu)先級問題。 本系統(tǒng)選擇適合于嵌入式系統(tǒng)的Boa WEB服務(wù)器。Boa是一個單任務(wù)的HTTP服務(wù)器,支持能夠?qū)崿F(xiàn)動態(tài)WEB技術(shù)的CGI技術(shù),源代碼開放、性能高。同時服務(wù)器程序本身所占空間很小,因而十分適用于嵌入式系統(tǒng)。 同時,本系統(tǒng)采用了CGI(公用網(wǎng)關(guān)接口) 來實(shí)現(xiàn)動態(tài)WEB技術(shù),CGI規(guī)定了WEB服務(wù)器調(diào)用其他可執(zhí)行程序(CGI程序)的接口協(xié)議標(biāo)準(zhǔn)。WEB服務(wù)器通過調(diào)用CGI程序?qū)崿F(xiàn)和瀏覽器的交互,也就是CGI程序接受瀏覽器發(fā)送給WEB服務(wù)器的信息,進(jìn)行處理,將響應(yīng)結(jié)果再回送給WEB服務(wù)器及瀏覽器。原則CGI程序可以用任何程序設(shè)計語言編寫,但是用C語言編寫的CGI程序具有執(zhí)行速度快、安全性高等特點(diǎn)。
圖3 嵌入式 WEB 服務(wù)器的應(yīng)用軟件結(jié)構(gòu)
4.2.2嵌入式數(shù)據(jù)庫mSQL
在本系統(tǒng)中,用戶信息的存儲,用戶的登錄登出,視頻設(shè)備參數(shù)的存儲與查詢,視頻文件的存儲與查詢等,都需要一個嵌入式數(shù)據(jù)庫。綜合考慮,本系統(tǒng)使用mSQL(MiniSQL)作為本系統(tǒng)的后臺數(shù)據(jù)庫。mSQL是一款優(yōu)秀的嵌入式數(shù)據(jù)庫,體系結(jié)構(gòu)小巧,占用系統(tǒng)資源少,特別適合在嵌入式Linux系統(tǒng)中使用。同時,mSQL提供專門的API函數(shù),使得用C語言編寫的CGI程序可以與mSQL的數(shù)據(jù)庫引擎進(jìn)行通信。
4.2.3視頻調(diào)度與傳輸模塊
視頻調(diào)度與傳輸模塊為監(jiān)控端提供所需的實(shí)時視頻信息,是服務(wù)器應(yīng)用軟件中最重要的模塊。該模塊根據(jù)所采取的網(wǎng)絡(luò)傳輸與控制協(xié)議與監(jiān)控端建立連接,監(jiān)聽監(jiān)控端的請求;同時又根據(jù)不同的服務(wù)類型采取相應(yīng)的調(diào)度策略創(chuàng)建視頻流,然后將視頻數(shù)據(jù)分組、打包,發(fā)送到監(jiān)控端,并根據(jù)路由器和監(jiān)控端反饋的網(wǎng)絡(luò)狀態(tài)信息進(jìn)行差錯處理和擁塞控制。
視頻數(shù)據(jù)的傳輸一般采UDP網(wǎng)絡(luò)通訊協(xié)議,而采用UDP的IP傳送方式有點(diǎn)播、廣播和組播三種,其中組播是服務(wù)器只向特定的用戶組發(fā)送一個數(shù)據(jù)包,組中的各用戶可以共享這一數(shù)據(jù)包,而組外的用戶卻無法接收到。本系統(tǒng)采用IP組播方式,采用組播技術(shù)的優(yōu)點(diǎn)有以下幾點(diǎn):可以讓服務(wù)器承擔(dān)大量客戶端的視頻數(shù)據(jù)播送要求;由于數(shù)據(jù)包拷貝數(shù)量和發(fā)送目的地址少,大大減少了網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)總量,從而保證較高的服務(wù)質(zhì)量;減小了視頻數(shù)據(jù)流傳輸?shù)膸捳加?,減輕了服務(wù)器的負(fù)擔(dān)。
本系統(tǒng)采用的網(wǎng)絡(luò)傳輸協(xié)議使用RTP/UDP/IP模型。RTP協(xié)議是一種提供端對端的實(shí)時媒體傳輸服務(wù)的協(xié)議,由實(shí)時傳輸協(xié)議RTP和實(shí)時傳輸控制協(xié)議RTCP兩個部分組成。RTP用于實(shí)時視頻數(shù)據(jù)的傳輸,而RTCP則用來監(jiān)控實(shí)時視頻數(shù)據(jù)的傳輸。RTP/UDP/IP的方式兼顧了視頻傳輸?shù)膶?shí)時性與QoS保證。同時針對傳輸網(wǎng)絡(luò)狀況的不確定性,還可以采取一定的擁塞控制和差錯控制策略。
4.2.4存儲管理與調(diào)度模塊
存儲管理模塊的主要功能是將壓縮和編碼后的視頻信息根據(jù)一定的策略存儲至磁盤中特定的區(qū)域,并將視頻文件信息存儲到嵌入式數(shù)據(jù)庫中,以供檢索與回放,同時響應(yīng)視頻調(diào)度與傳輸模塊的請求,按照一定的磁盤調(diào)度策略和優(yōu)先級順序從磁盤中讀取視頻數(shù)據(jù)至內(nèi)存緩沖區(qū)。對于存儲管理,本系統(tǒng)采用等長分組存儲策略,即將視頻信息按照時序關(guān)系分割成若干數(shù)據(jù)單元,這些數(shù)據(jù)單元稱為分組,將每個分組存儲于一個大小固定的存儲單元內(nèi)。
4.2.5攝像機(jī)控制模塊
攝像機(jī)控制模塊主要實(shí)現(xiàn)對攝像機(jī)的控制。在監(jiān)控端,用戶通過瀏覽器向WEB服務(wù)器發(fā)送攝像機(jī)控制命令,該控制命令經(jīng)WEB服務(wù)器接受和處理后,再通過CGI程序發(fā)送給攝像機(jī)控制模塊,然后被轉(zhuǎn)換成相應(yīng)的對攝像機(jī)控制的硬件操作指令,從而實(shí)現(xiàn)對攝像機(jī)云臺鏡頭的遠(yuǎn)程控制。
5 結(jié)束語
隨著VOD業(yè)務(wù)的不斷普及,人們對視頻服務(wù)器的設(shè)計不斷提出新的要求。有些問題值得密切關(guān)注。其一是,當(dāng)系統(tǒng)突然面對大量的客戶請求時,必須解決圖像、聲音數(shù)據(jù)流播放的高速、連續(xù)、可靠和同步的問題。這就要求視頻服務(wù)器在設(shè)計時采用一定的策略來改善這方面的性能。另一方面是為了進(jìn)一步提高視頻服務(wù)器的服務(wù)用戶數(shù),節(jié)省視頻服務(wù)器的系統(tǒng)資源,減輕骨干網(wǎng)的流量負(fù)載,可采用多播的方式把那些點(diǎn)播同一節(jié)目且具有相同(相近)路由的用戶統(tǒng)一進(jìn)行服務(wù)。