基于IPV6的嵌入式視頻監(jiān)控系統(tǒng)
3.2服務(wù)器端視頻發(fā)送和客戶端視頻接收
在基于DirectShow的視頻發(fā)送端中,其過(guò)濾器圖分別由 Video Capture Filter,Video Codec和 RTP Video Renderer Filter按順序連接成一條“流水線”協(xié)同工作,他們分別完成源過(guò)濾器、轉(zhuǎn)換過(guò)濾器和呈現(xiàn)過(guò)濾器的工作。 Video Capture Filter負(fù)責(zé)視頻數(shù)據(jù)采集, Video Codec負(fù)責(zé)視頻數(shù)據(jù)的壓縮,最后由 RTP Video RendererFilter將壓縮的視頻數(shù)據(jù)封裝 RTP包發(fā)送到網(wǎng)絡(luò)上。過(guò)濾器之間的數(shù)據(jù)發(fā)送采用推模式。
視頻發(fā)送實(shí)現(xiàn)過(guò)程如下:
1)初始化 coM組件,初始化 DirectShow,包括建立 GraphManager接口、建立 GraphBuilder接口(它的 CLSID為 CLSID_ FilterGraph)、建立 BasicFilter接口,并將 VWSource Filter (VW210), Sputter Filter(音視頻分離過(guò)濾器)、Codec Fil-ter(TopStepdVideo)和 RTPVren}lter (RTP傳輸呈現(xiàn)過(guò)濾器)加到 GraphBuilder。
2)通過(guò)系統(tǒng)設(shè)各列舉接口找到系統(tǒng)中默認(rèn)的視頻捕獲設(shè)備,并添加到 GraphBuilder中,查詢 GraphBuilder獲得媒體事件接口和媒體控制接口,連接各個(gè)過(guò)濾器,設(shè)置 RTP Vrenflter參數(shù)。
3)通過(guò) GraphManager的控制接口,運(yùn)行過(guò)濾器圖,捕獲并發(fā)送圖象。
4)等待運(yùn)行結(jié)束消息,釋放各個(gè)接口,關(guān)閉 COM組件。視頻發(fā)送實(shí)現(xiàn)過(guò)程中圖像傳輸?shù)膶?shí)現(xiàn)最為關(guān)健,當(dāng)視頻發(fā)送端響應(yīng)網(wǎng)絡(luò)客戶端發(fā)出的視頻數(shù)據(jù)請(qǐng)求后,馬上啟動(dòng)視頻數(shù)據(jù)發(fā)送線程,開(kāi)始采集 MPEG視頻數(shù)據(jù)并源源不斷地寫入到發(fā)送緩沖區(qū)中。它的實(shí)現(xiàn)原理是:位于源過(guò)濾器 VWSource Filter(VW210卡)將從攝像頭獲取的模擬視頻圖像首先進(jìn)行A/D轉(zhuǎn)換,然后將采集到的視頻數(shù)據(jù)交給下游的 MPEG Stream Spatter filter,由它對(duì)獲得的數(shù)據(jù)進(jìn)行解析后轉(zhuǎn)交給其下游的變換過(guò)濾器 Video Coder filter進(jìn)行 MPEG編碼,然后將編碼后的 MPEG視頻數(shù)據(jù)寫入發(fā)送緩沖區(qū),這部分都由 VW210卡完成。如果選擇本地存盤則過(guò)濾器圖連接到此結(jié)束,將視頻數(shù)據(jù)直接寫入磁盤。視頻接收端程序流程如下圖 7所示:
4結(jié)論
本文創(chuàng)新點(diǎn):本視頻監(jiān)控系統(tǒng)是基于 ARM嵌入式核心處理器的硬件平臺(tái),其中嵌入式系統(tǒng)中移植 TCP/IPv6協(xié)議,在原有 MPEG4視頻編碼基礎(chǔ)上采用了新的運(yùn)動(dòng)估計(jì)優(yōu)先估計(jì)矢量分布概率算法進(jìn)行優(yōu)化,同時(shí)對(duì)視頻傳輸算法也作了相應(yīng)的改進(jìn)。系統(tǒng)結(jié)合了流媒體技術(shù),IPv6技術(shù),嵌入式技術(shù)等優(yōu)點(diǎn),實(shí)驗(yàn)證明該系統(tǒng)視頻監(jiān)控方而取得了良好效果。
評(píng)論