您現(xiàn)在的位置:
中國(guó)傳動(dòng)網(wǎng)
>
技術(shù)頻道
>
技術(shù)百科
>
基于DM642的視頻監(jiān)控系統(tǒng)的設(shè)計(jì)
時(shí)間:2009-01-14 10:46:28來源:ronggang
圖3 嵌入式系統(tǒng)軟件總體流程圖[/align]
三 遠(yuǎn)程監(jiān)控中心軟件實(shí)現(xiàn)
3.1DirectShow技術(shù)
整個(gè)系統(tǒng)以Microsoft公司的DirectShow技術(shù)為基礎(chǔ), DirectShow屬于DirectX家族的一員,他為在Windows平臺(tái)處理各種格式的媒體文件的回放,音視頻采集等高性能要求的多媒體應(yīng)用,提供了完整的解決方案[2]。在DirectShow系統(tǒng)之上,應(yīng)用程序要按照一定的意圖建立起相應(yīng)的Filter Graph,然后通過Filter Graph Manager來控制整個(gè)的數(shù)據(jù)處理過程,DirectShow的體系結(jié)構(gòu)如圖所示。DirectShow能在Filter Graph運(yùn)行的時(shí)候接收到各種事件,并通過消息的方式發(fā)送到應(yīng)用程序。這樣,就實(shí)現(xiàn)了應(yīng)用程序與DirectShow之間的交互。
[align=center]
圖4 DirectShow的體系結(jié)構(gòu)如圖[/align]
Directshow是基于模塊化,每個(gè)特定的功能模塊都采取COM組件方式,稱為Filter。Directshow提供了一系列的標(biāo)準(zhǔn)的模塊可用于應(yīng)用開發(fā),開發(fā)者也可以開發(fā)自己的功能filter來擴(kuò)展Directshow的應(yīng)用。每個(gè)filter都在FilterGraph的模型的管理下參與數(shù)據(jù)的處理,各個(gè)filter在FilterGraph中按特定的順序鏈接來完成用戶制定的功能。filter 一般分為下面幾種類型(1)源過濾器(sourcefilter):源過濾器引入數(shù)據(jù)到過濾器圖表中,數(shù)據(jù)來源可以是文件、網(wǎng)絡(luò)、照相機(jī)等。(2)變換過濾器(transform filter):變換過濾器的工作是獲取輸入流,處理數(shù)據(jù),并生成輸出流。變換過濾器對(duì)數(shù)據(jù)的處理包括編解碼、格式轉(zhuǎn)換、壓縮解壓縮等。(3)提交過濾器(renderer filter):提交過濾器在過濾器圖表里處于最后一級(jí),它們接收數(shù)據(jù)并把數(shù)據(jù)提交給外設(shè)[2]。
3.2采用Directshow實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)視頻流的實(shí)時(shí)播放
本系統(tǒng)軟件分別對(duì)各個(gè)功能Filter進(jìn)行了開發(fā),并將他們連接成一個(gè)完整的鏈路,如圖5
[align=center]
圖5 網(wǎng)絡(luò)播放FilterGraph[/align]
其中NetRecv Filter為網(wǎng)絡(luò)接收源過濾器Filter(sourcefilter),它由CBaseFilter繼承而來,CBaseFilter已經(jīng)具備了Filter的基本特征和框架,采用推模式將網(wǎng)絡(luò)接收來的數(shù)據(jù)推向下一級(jí)filter,程序?qū)ocket相關(guān)操作都放在應(yīng)用層,如socket創(chuàng)建、偵聽、連接等,到時(shí)候只要將連接好的socket句柄通過filter接口設(shè)置給NetRecv Filter,在接受filter內(nèi)部實(shí)現(xiàn)時(shí),只需使用外部設(shè)置進(jìn)來的socket進(jìn)行數(shù)據(jù)的接受工作。
由于從遠(yuǎn)程嵌入式終端傳輸過來的視頻數(shù)據(jù)為H264壓縮碼流,所以要對(duì)其實(shí)現(xiàn)實(shí)時(shí)播放還需要一個(gè)transform filter 即H264解碼filter (H264 Decode Filter),它由CTransformFilter繼承而來,它主要是由T264代碼為核心的解碼filter,T264是中國(guó)的視頻編碼自由組織合力開發(fā)的264編解碼程序,他將完成從NetRecv Filter上接受H264碼流,再對(duì)其進(jìn)行解碼變成YUV視頻格式,通過輸出PIN送至render filter進(jìn)行播放。
整個(gè)實(shí)現(xiàn)過程如下
。1)首先構(gòu)建視頻播放FilterGraph對(duì)象m_VideoGraph;
(2)創(chuàng)建NetRecv Filter、H264 Decode Filter和Renderer Filter,并將這三個(gè)filter加入到m_VideoGraph中;
(3)將負(fù)責(zé)視頻數(shù)據(jù)接收的socket設(shè)置給NetRecv Filter進(jìn)行網(wǎng)絡(luò)視頻流數(shù)據(jù)的接收工作;
。4)根據(jù)第一次接受的數(shù)據(jù)格式重新設(shè)定視頻的各個(gè)參數(shù),例如:
mPreferredMt.SetSubtype(&MEDIASUBTYPE_YUY2);//設(shè)定媒體類型為YUV4:2:0格式;
info.AvgTimePerFrame = 400000; //幀速率為25幀/S;
info.bmiHeader.biWidth =n_Width;//設(shè)定圖像的寬度;
info.bmiHeader.biHeight = n_Height;//設(shè)定圖像的高度;
info.bmiHeader.biSizeImage=n_Width* _Height *2; //圖像的大小;
info.bmiHeader.biCompression= mmioFOURCC(‘Y‘,‘U‘,‘Y‘,‘2‘);
。5)設(shè)定完視頻格式后,通知應(yīng)用完成全部filter的連接工作,然后調(diào)用mVideoGraph->Run()運(yùn)行。
(4)當(dāng)網(wǎng)絡(luò)接受到超過一定的數(shù)據(jù)量時(shí),通知事件窗體要進(jìn)行視頻的播放。
3.3 網(wǎng)絡(luò)視頻傳輸策略
網(wǎng)絡(luò)部分采用WinSock進(jìn)行編程,socket 提供兩種不同的傳輸方式,TCP是面向連接的協(xié)議, 通過握手協(xié)議, 能夠提供可靠的數(shù)據(jù)傳輸, 但是速度慢, 系統(tǒng)負(fù)載大。UDP不提供連接, 依靠網(wǎng)絡(luò)自身來保證傳輸?shù)目煽? 不能保證圖像不丟失, 但是簡(jiǎn)單快速[3]。視頻圖像傳輸有自身的特點(diǎn):關(guān)鍵的壓縮圖像信息(H264的壓縮信息)等一旦丟失將造成系統(tǒng)的癱瘓,其他的控制信息的部分丟失不會(huì)對(duì)系統(tǒng)產(chǎn)生太大的影響。本系統(tǒng)針對(duì)視頻圖像傳輸?shù)奶攸c(diǎn)采用如下的傳輸機(jī)制:視頻圖像傳輸方面采用TCP的連接方式,保證核心的信息實(shí)現(xiàn)無差錯(cuò)連接,而控制中心和遠(yuǎn)程終端的交互信息則采用UDP 的方式。
系統(tǒng)采用流式的數(shù)據(jù)接受方案,TCP和UDP傳輸包都有自己的結(jié)構(gòu),傳輸視頻數(shù)據(jù)的TCP數(shù)據(jù)包格式如下


標(biāo)簽:
![]()
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(connectcrack.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>耐磨管道機(jī)器人檢測(cè)電纜CCTV,水下管道...
2025-09-23
影視舞臺(tái)燈光低煙無鹵扁平電纜13*4+2*(2...
2025-09-23
「頻」實(shí)力,新上市——富士電機(jī) FRENIC...
2025-09-08
華為昇騰Atlas800iA2 910B服務(wù)器Deepsee...
2025-09-04
TaiShan(泰山)200 2280系列服務(wù)器 鯤...
2025-09-03
2025-08-06