【摘 要】本文介紹了一種基于嵌入式 linux 的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方案。首先介紹了網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的現(xiàn)狀和發(fā)展趨勢(shì);其次闡述了系統(tǒng)總體方案包括硬件和軟件的設(shè)計(jì)。通過利用linux操作系統(tǒng)內(nèi)建的video4linux對(duì)攝像頭進(jìn)行編程,實(shí)現(xiàn)了將USB攝像頭采集到的視頻數(shù)據(jù)進(jìn)行顯示和存為圖片的功能。文章最后給出了基于所建平臺(tái)的網(wǎng)絡(luò)應(yīng)用,即在上述所建的軟硬件平臺(tái)上創(chuàng)建Web服務(wù)器Boa,遠(yuǎn)程客戶端用戶通過IE瀏覽器可直接訪問服務(wù)器,進(jìn)行遠(yuǎn)程網(wǎng)絡(luò)視頻監(jiān)控。
【關(guān)鍵詞】嵌入式linux,USB攝像頭,Boa,視頻監(jiān)控
1緒論
1.1視頻監(jiān)控系統(tǒng)的現(xiàn)狀
在國內(nèi)外市場(chǎng)上,主要推出的是數(shù)字控制的模擬視頻監(jiān)控和數(shù)字視頻監(jiān)控兩類產(chǎn)品。前者技術(shù)發(fā)展已經(jīng)非常成熟、性能穩(wěn)定,并在實(shí)際工程應(yīng)用中得到廣泛應(yīng)用;后者是新近崛起的以計(jì)算機(jī)技術(shù)及圖像視頻壓縮為核心的新型視頻監(jiān)控系統(tǒng),該系統(tǒng)解決了模擬系統(tǒng)部分弊端而迅速崛起,但仍需進(jìn)一步完善和發(fā)展。目前,視頻監(jiān)控系統(tǒng)正處在數(shù)控模擬系統(tǒng)與數(shù)字系統(tǒng)混合應(yīng)用并將逐漸向數(shù)字系統(tǒng)過渡的階段。
1、數(shù)字信號(hào)控制的模擬視頻監(jiān)控系統(tǒng)
數(shù)字信號(hào)控制的模擬視頻監(jiān)控系統(tǒng)分為基于微處理器的視頻切換控制加 PC 多媒體管理和基于 PC 機(jī)實(shí)現(xiàn)對(duì)矩陣主機(jī)的切換控制及對(duì)系統(tǒng)的多媒體管理兩種類型。
2、數(shù)字視頻監(jiān)控系統(tǒng)
現(xiàn)今市場(chǎng)上有兩種數(shù)字視頻監(jiān)控系統(tǒng)類型,一種是以數(shù)字錄像設(shè)備為核心的視頻監(jiān)控系統(tǒng),另一種是以嵌入式視頻 Web 服務(wù)器為核心的視頻監(jiān)控系統(tǒng)。
1.2視頻監(jiān)控系統(tǒng)的趨勢(shì)
前端一體化、視頻數(shù)字化、監(jiān)控網(wǎng)絡(luò)化、系統(tǒng)集成化是視頻監(jiān)控系統(tǒng)公認(rèn)的發(fā)展方向,而數(shù)字化是網(wǎng)絡(luò)化的前提,網(wǎng)絡(luò)化又是系統(tǒng)集成化的基礎(chǔ),所以,視頻監(jiān)控發(fā)展的最大兩個(gè)特點(diǎn)就是數(shù)字化和網(wǎng)絡(luò)化。
(1)數(shù)字化
視頻監(jiān)控系統(tǒng)的數(shù)字化首先應(yīng)該是系統(tǒng)中信息流(包括視頻、音頻、控制等)從模擬狀態(tài)轉(zhuǎn)為數(shù)字狀態(tài),這將徹底打破“經(jīng)典閉路電視系統(tǒng)是以攝像機(jī)成像技術(shù)為中心”的結(jié)構(gòu),根本上改變視頻監(jiān)控系統(tǒng)從信息采集、數(shù)據(jù)處理、傳輸、系統(tǒng)控制等的方式和結(jié)構(gòu)形式。信息流的數(shù)字化、編碼壓縮、開放式的協(xié)議,使視頻監(jiān)控系統(tǒng)與安防系統(tǒng)中其它各子系統(tǒng)間實(shí)現(xiàn)無縫連接,并在統(tǒng)一的操作平臺(tái)上實(shí)現(xiàn)管理和控制,這也是系統(tǒng)集成化的含義。
(2)網(wǎng)絡(luò)化
視頻監(jiān)控系統(tǒng)的網(wǎng)絡(luò)化將意味著系統(tǒng)的結(jié)構(gòu)將由集總式向集散式系統(tǒng)渡。
系統(tǒng)的網(wǎng)絡(luò)化在某種程度上打破了布控區(qū)域和設(shè)備擴(kuò)展的地域和數(shù)量界限。系統(tǒng)網(wǎng)絡(luò)化將使整個(gè)網(wǎng)絡(luò)系統(tǒng)硬件和軟件資源的共享以及任務(wù)和負(fù)載的共享,這也是系統(tǒng)集成的一個(gè)重要概念。
2 視頻監(jiān)控系統(tǒng)方案設(shè)計(jì)
本課題的設(shè)計(jì)目的是:設(shè)計(jì)一種嵌入式視頻服務(wù)器,實(shí)現(xiàn)把USB攝像頭采集到的信息通過USB口傳輸給CPU處理器,CPU處理器對(duì)數(shù)據(jù)進(jìn)行壓縮打包,并通過以太網(wǎng)發(fā)送出去。使任意一臺(tái)連接到該網(wǎng)絡(luò)上的PC機(jī)都能觀看攝像頭處的視頻信息,PC機(jī)通過串行口可以做出相應(yīng)的控制。
本系統(tǒng)的功能結(jié)構(gòu)為:
1 嵌入式視頻服務(wù)器實(shí)現(xiàn):視頻圖像采集、存儲(chǔ)和壓縮編碼工作,并通過Internet傳輸圖像到遠(yuǎn)端主機(jī)。
2 PC機(jī)端可以對(duì)圖像數(shù)據(jù)實(shí)現(xiàn)處理如解壓顯示,也可通過信息交互對(duì)該設(shè)備終端進(jìn)行遠(yuǎn)程控制如設(shè)置攝像頭采集圖像的分辨率、亮度、對(duì)比度等參數(shù)。
3 視頻采集設(shè)計(jì)與實(shí)現(xiàn)
3.1 Video4Linux簡(jiǎn)介
Video41inux(V4L)是Linux的影像串流系統(tǒng)與嵌入式影像系統(tǒng)的基礎(chǔ),是Linux kernel里支持影像設(shè)備的一組APIs,配合適當(dāng)?shù)囊曨l采集卡與視頻采集卡驅(qū)動(dòng)程序,video41inux可以讓我們實(shí)現(xiàn)影像采集、AM/FM無線廣播、影像CODEC、視頻切換等功能,經(jīng)常使用在需要采集圖像的場(chǎng)合,如視頻監(jiān)控,webcam,可視電話。V4L經(jīng)常應(yīng)用在embedded linux中,是linux嵌入式開發(fā)中經(jīng)常使用的系統(tǒng)接口。它是linux內(nèi)核提供給用戶空間的編程接口,各種的視頻和音頻設(shè)備開發(fā)相應(yīng)的驅(qū)動(dòng)程序后,就可以通過V4L提供的系統(tǒng)API來控制視頻和音頻設(shè)備,也就是說V4L分為兩層,底層為音視頻設(shè)備在內(nèi)核中的驅(qū)動(dòng),上層為系統(tǒng)提供的API,而對(duì)于我們來說需要的就是使用這些系統(tǒng)的API。
3.2攝像頭采集程序的編寫
Linux下視頻編程的基本步驟是:
1、打開視頻設(shè)備;2、讀取設(shè)備信息;3、更改設(shè)備信息(如果有必要的話);4、進(jìn)行視頻采集(有兩種方法,這里采用read的方式);5、對(duì)采集的視頻進(jìn)行處理(使用servfox的代碼實(shí)現(xiàn)了jpeg壓縮與保存);6、關(guān)閉視頻設(shè)備。
4 基于Boa的嵌入式Web服務(wù)器的視頻傳輸?shù)膶?shí)現(xiàn)
4.1嵌入式Web服務(wù)器簡(jiǎn)介
嵌入式設(shè)備資源一般都比較有限,并且不需要能同時(shí)處理很多用戶的請(qǐng)求,因此這里不使用Linux下最常用的如Apache等服務(wù)器,而需要使用一些專門為嵌入式設(shè)備設(shè)計(jì)的Web服務(wù)器,這些Web服務(wù)器在存貯空間和運(yùn)行時(shí)所占有的內(nèi)存空間上都非常適合于嵌入式應(yīng)用場(chǎng)合。典型的嵌入式Web服務(wù)器有Boa和thttpd等,它們和Apache等高性能的Web服務(wù)器主要的區(qū)別在于它們一般是單進(jìn)程服務(wù)器,只有在完成一個(gè)用戶請(qǐng)求后才能響應(yīng)另一個(gè)用戶的請(qǐng)求,而無法并發(fā)響應(yīng),但這在嵌入式設(shè)備的應(yīng)用場(chǎng)合里已經(jīng)足夠了。
Boa是一個(gè)單任務(wù)的HTTP服務(wù)器,跟傳統(tǒng)的Web服務(wù)器有所不同,它不為每一個(gè)訪問的連接單獨(dú)開啟一個(gè)進(jìn)程,而是通過建立HTTP請(qǐng)求列表來處理多路HTTP連接請(qǐng)求。Boa對(duì)所有活動(dòng)的HTTP連接在內(nèi)部進(jìn)行處理, 而只為每個(gè)CGI程序啟動(dòng)新的進(jìn)程。因此Boa在同等硬件條件下節(jié)省了系統(tǒng)資源,顯示出了更快的速度,這對(duì)嵌入式系統(tǒng)來說至關(guān)重要。同時(shí)它還具有自動(dòng)解壓文件、自動(dòng)創(chuàng)建目錄等功能,在嵌入式系統(tǒng)中具有很高的應(yīng)用價(jià)值。
4.2 基于Boa的嵌入式Web服務(wù)器的實(shí)現(xiàn)
通過分析系統(tǒng)的功能需求可知,要設(shè)計(jì)網(wǎng)絡(luò)視頻服務(wù)器,首先要設(shè)計(jì)一個(gè)嵌入式系統(tǒng),然后再在該嵌入式系統(tǒng)的基礎(chǔ)上做視頻處理,以及網(wǎng)絡(luò)開發(fā)。本設(shè)計(jì)采用基于Linux的嵌入式系統(tǒng)。
系統(tǒng)設(shè)計(jì)思想是將視頻前端和嵌入式Web服務(wù)器整合在一起,采集數(shù)字?jǐn)z像頭傳送來的視頻信號(hào),通過USB總線傳送到Web服務(wù)器。Web 服務(wù)器接上網(wǎng)絡(luò),網(wǎng)絡(luò)上用戶可以用IE觀看Web服務(wù)器上的監(jiān)控圖像。由于把視頻采集壓縮和Web功能集成到一個(gè)設(shè)備內(nèi),直接接入網(wǎng)絡(luò),達(dá)到即插即看,省掉很多復(fù)雜的電路,在有網(wǎng)絡(luò)接口的地方都可以直接使用,安裝簡(jiǎn)單使用方便。系統(tǒng)的工作原理是利用嵌入式Linux和ARM9控制器建立Web服務(wù)器,通過服務(wù)器接收來自瀏覽器的指令并采集USB 攝像頭的視頻圖像,并通過網(wǎng)絡(luò)向?yàn)g覽器傳輸視頻,從而達(dá)到遠(yuǎn)程視頻監(jiān)控的目的。
基于ARM的嵌入式視頻服務(wù)器主要由兩部分組成:服務(wù)器端部分和客戶端部分。服務(wù)器端部分包括圖像采集驅(qū)動(dòng)程序模塊、視頻數(shù)據(jù)采集壓縮模塊、視頻數(shù)據(jù)網(wǎng)絡(luò)傳輸模塊。服務(wù)器端首先要搭建好嵌入式Linux平臺(tái),在ARM 硬件平臺(tái)成功構(gòu)建了arm-linux嵌入式系統(tǒng):包括引導(dǎo)程序Boodoader的設(shè)計(jì)、修改配置linux內(nèi)核以及制作JFFS2文件系統(tǒng)。服務(wù)器端部分的主要功能為:圖像傳感器M1360采集的RGB原始圖像數(shù)據(jù)經(jīng)數(shù)字壓縮芯片ZC0301壓縮編碼后輸出JPEG格式的二進(jìn)制位流。然后經(jīng)由Linux視頻子系統(tǒng)video4Linux采集,通過UDP協(xié)議的口多播方式將采集的一幀JPEG圖像的二進(jìn)制位流通過RJ45接口發(fā)送到瀏覽器客戶端。客戶端部分的主要功能為:在微處理器S3C2410的嵌入式Linux系統(tǒng)上移植嵌入式WEB服務(wù)器Boa,實(shí)現(xiàn)與視頻服務(wù)器進(jìn)行網(wǎng)絡(luò)通信、視頻圖像顯示等功能,并通過WEB服務(wù)器發(fā)布,這樣就可以通過瀏覽器訪問WEB服務(wù)器IP對(duì)遠(yuǎn)端現(xiàn)場(chǎng)進(jìn)行實(shí)時(shí)監(jiān)控。
結(jié) 論
在上述搭建的軟硬件平臺(tái)上創(chuàng)建Web服務(wù)器,提出了基于Boa的嵌入式Web服務(wù)器的解決方案和利用java接口基于C語言動(dòng)態(tài)Web服務(wù)器頁面的實(shí)現(xiàn),并通過PC機(jī)IE瀏覽器可以直接控制目標(biāo)板上的硬件和可執(zhí)行程序,實(shí)現(xiàn)了對(duì)目標(biāo)板的遠(yuǎn)程監(jiān)控功能。
遠(yuǎn)程客戶端用戶通過IE瀏覽器訪問嵌入式視頻服務(wù)器,實(shí)際測(cè)試效果表明,實(shí)時(shí)視頻圖像傳輸流暢,無明顯延遲和抖動(dòng),本嵌入式視頻服務(wù)器具有可行性、穩(wěn)定性和較高的性價(jià)比,滿足了實(shí)時(shí)視頻監(jiān)控的需要,具有一定的實(shí)用價(jià)值,可作為實(shí)驗(yàn)室的嵌入式應(yīng)用二次實(shí)驗(yàn)平臺(tái),用于產(chǎn)品開發(fā)及教學(xué)工作。
參考文獻(xiàn):
[1]徐力,孔巖.視頻監(jiān)控系統(tǒng)的現(xiàn)狀和發(fā)展趨勢(shì)[J].軟件開發(fā)與應(yīng)用,2005,4:60-62.
[2]楊繼華,嚴(yán)國萍.基于嵌入式linux與s3c2410平臺(tái)的視頻采集[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004.11:69-71.
[3]趙方鵬,楊建華,趙忠,劉文濤.基于嵌入式Linux的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[B].測(cè)控技術(shù),2007,26:55-57.
[4]汪燦華.基于ARM的遠(yuǎn)程視頻監(jiān)控系統(tǒng)研究[D].南昌:南昌大學(xué),2007.