當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]嵌入式Linux系統(tǒng)下的視頻服務(wù)器解析方案

0 引言

通信網(wǎng)絡(luò)已經(jīng)普及到人類生活的各個方面,布控區(qū)域廣闊的網(wǎng)絡(luò)視頻采集系統(tǒng)也在迅速的發(fā)展,嵌入式視頻采集系統(tǒng)的服務(wù)器直接連入已經(jīng)建成的網(wǎng)絡(luò),既沒有線纜長度的限制,也沒有信號衰減的限制,通過沒有距離概念的網(wǎng)絡(luò),徹底拋棄了地域的限制。系統(tǒng)具有幾乎無限的無縫擴展能力,所有設(shè)備都以IP地址劃分,增加設(shè)備只是意味著IP地址的增加,可組成非常復(fù)雜的視頻采集系統(tǒng),服務(wù)器輸出的視頻數(shù)據(jù)已完成模擬到數(shù)字的轉(zhuǎn)換并壓縮,采用TCP/IP協(xié)議在網(wǎng)絡(luò)上傳輸,支持跨網(wǎng)關(guān)、跨路由器的遠程視頻信息傳輸。

本文根據(jù)網(wǎng)絡(luò)視頻采集的需要,將網(wǎng)絡(luò)傳輸與視頻采集相結(jié)合,設(shè)計了以S3C2440為核心的USB攝像頭視頻采集和嵌入式Linux系統(tǒng)下的視頻服務(wù)器,從而實現(xiàn)了遠程網(wǎng)絡(luò)視頻信息采集。

1 系統(tǒng)總體設(shè)計

該系統(tǒng)是以ARM9處理器S3C2440為核心,在嵌入式Linux系統(tǒng)平臺下,通過USB攝像頭采集視頻信息,然后對所得到的視頻數(shù)據(jù)通過內(nèi)部總線送到視頻服務(wù)器MJPG-streamer上,視頻服務(wù)器經(jīng)過對圖像壓縮處理,經(jīng)過以太網(wǎng)傳輸出去,遠端客戶機通過瀏覽器或者專用軟件訪問視頻服務(wù)器,即可瀏覽現(xiàn)場信息,從而實現(xiàn)網(wǎng)絡(luò)視頻采集。系統(tǒng)總體如圖1所示。

2 系統(tǒng)硬件設(shè)計

系統(tǒng)的硬件框圖如圖2所示。

系統(tǒng)處理器采用高性能ARM9處理器S3C2440,S3C2440是基于ARM920T核心的RISC處理器,主頻為400 MHz,實現(xiàn)了MMU,具有AMBA總線和哈佛結(jié)構(gòu)高速緩沖體系結(jié)構(gòu),有獨立的16 KB的指令緩存和16 KB的數(shù)據(jù)緩存。主要應(yīng)用于高性能,低價格,低功耗的嵌入式設(shè)備和手持設(shè)備。處理器內(nèi)部集成了完備的硬件資源,外部存儲控制器,4通道DMA,3通道的UART,2通道SPI,2通道USB主機和1通道USB設(shè)備,4通道PWM定時器和內(nèi)部看門狗定時器,130個GPIO等。

NAND FLASH采用K9F2G08,該存儲芯片容量大,高達256 MB,改寫速度非???,易于使用,具有可靠的耐用性,適合用于大量數(shù)據(jù)存儲,該FLASH以512 B為塊進行讀寫操作,通過輸入輸出接口傳送地址和命令,傳遞專門的數(shù)據(jù)接口與CPU相連,數(shù)據(jù)總線為8 b,寫入操作必須在空白區(qū)域進行,所以在改寫數(shù)據(jù)時要先進行擦除,然后再寫入。

NAND FLAsH在本系統(tǒng)中用來存放bootloader引導(dǎo)代碼,Linux內(nèi)核代碼以及Yaffs文件系統(tǒng)。SDRAM為同步動態(tài)隨機存儲器,類似于PC機的內(nèi)存,在系統(tǒng)啟動時,先將內(nèi)核代碼從FLASH復(fù)制到SDRAM中,用來程序的讀取,存儲,執(zhí)行,從而提高CPU讀取和寫入數(shù)據(jù)的速度。本采用2片32 MB的HY57V作為系統(tǒng)內(nèi)存,把他們并聯(lián)起來形成32位的數(shù)據(jù)總線,提高CPU的訪問速度,增加運行Linux系統(tǒng)的流暢性。由于SDRAM掉電不能保存數(shù)據(jù),所以要不斷的進行動態(tài)刷新來保存數(shù)據(jù),使用之前要進行初始化。

目前最流行的以太網(wǎng)控制器是DAVICOM公司的DM9000網(wǎng)卡芯片,該芯片自適應(yīng)10 Mb/s和100 Mb/s的網(wǎng)絡(luò),處理器通過GPIO與網(wǎng)卡相連,支持3.3 V接口電壓,32位接口存儲器可以方便直接與S3C2440相連,在連接RJ-45接口,即可實現(xiàn)以太網(wǎng)物理層和數(shù)據(jù)鏈路層的連接。設(shè)備驅(qū)動程序在Linux操作系統(tǒng)下可以方便的移植,故選擇此網(wǎng)卡芯片作為以太網(wǎng)控制器。攝像頭采用市場普通USB攝像頭,即插即用,處理器通過USB控制器控制攝像頭。

3 系統(tǒng)軟件設(shè)計

本系統(tǒng)軟件可分為Bootloader,Linux內(nèi)核,Yaffs文件系統(tǒng)和MJPG-streamer視頻服務(wù)器,系統(tǒng)框圖如圖3所示。

“Bootloader是在操作系統(tǒng)運行之前運行的一段小程序,來完成硬件設(shè)備的初始化,從而將系統(tǒng)軟硬件環(huán)境帶到合適狀態(tài),為最終調(diào)用操作系統(tǒng)做好準備”。Bootloader可以從SAMSUNG公司官方網(wǎng)站下載,經(jīng)過交叉編譯生成Bin文件,下載到板子上。

Linux內(nèi)核采用Linux 2.6.32版本,運行make menuconfig配置萬能驅(qū)動USB攝像頭,在Device Drivers下,選擇Multimedia device,選擇Video Capture adapters,選擇V4L USB devices,選擇GSPA based webcams,即可選擇萬能驅(qū)動USB攝像頭。

系統(tǒng)采用Yaffs文件系統(tǒng),Yaffs是專為嵌入式系統(tǒng)使用NAND型閃存而設(shè)計的一種日志型文件系統(tǒng)。它減少了一些功能,速度更快,掛載時間很短,對內(nèi)存的占用較小,所以系統(tǒng)采用Yaffs文件系統(tǒng)。

[!--empirenews.page--]

MJPG-streamer是一款免費基于IP地址的視頻流服務(wù)器,它的輸入插件從攝像頭讀取視頻數(shù)據(jù),這個輸入插件產(chǎn)生視頻數(shù)據(jù)并將視頻數(shù)據(jù)復(fù)制到內(nèi)存中,它有多個輸出插件將這些視頻數(shù)據(jù)經(jīng)過處理,其中最重要的輸出插件是網(wǎng)站服務(wù)器插件,它將視頻數(shù)據(jù)傳送到用戶瀏覽器中,MJPG-streamer的工作就是將其中的一個輸入插件和多個輸出插件綁定在一起,所有的工作都是通過它的各個插件完成的。MJPG-stream er源碼包可從SourceForge網(wǎng)站下載使用。各個文件如下:

(1)input_testpicture.so。這是一個圖像測試插件,它將預(yù)設(shè)好的圖像編譯成一個頭文件,可以在沒有攝像頭的情況下傳輸圖像,從而方便調(diào)試程序。

(2)input_uvc.so。此文件調(diào)用USB攝像頭驅(qū)動程序V4L2,從攝像頭讀取視頻數(shù)據(jù)。

(3)input_control.so。這個文件實現(xiàn)對攝像頭轉(zhuǎn)動的控制接口。

(4)output_http.so。這是一個功能齊全的網(wǎng)站服務(wù)器,它不僅可以從單一文件夾中處理文件,還可以執(zhí)行一定的命令,它可以從輸入插件中處理一幅圖像,也可以將輸入插件的視頻文件根據(jù)現(xiàn)有M-JPEG標準以HTTP視頻數(shù)據(jù)服務(wù)流形式輸出。

(5)output_file.so。這個插件的功能是將輸入插件的JPEG圖像存儲到特定的文件夾下,它可以用來抓取圖像。

將MJPG-streamer視頻流服務(wù)器移植到目標板上運行,從而可以實現(xiàn)網(wǎng)絡(luò)視頻數(shù)據(jù)的采集,具體移植過程:

(1)首先移植MJPG-streamer依賴的jpeg庫。在/usr/local目錄下解壓源碼包tar xvzf jpegsrc.v8b.tar.gz。

(2)修改配置文件./configure--prefix=/usr/video/jpeg--host=arm-linux-gnueabi,編譯:make,安裝:make install,最后將/usr/local/video/jpeg/lib目錄下的libjpeg.so.8文件拷貝到文件系統(tǒng)中的lib目錄下。

(3)解壓源碼包:tar zxvf mjpg-streamer.tar.gz;

(4)修改源碼:修改頂層Makefile及plugins目錄中的各級Makefile將所有CC=gcc修改為CC=arm-linux-gcc。修改/usr/local/mjpg-streamer-r63/plugins/input_uvc目錄下的Makfile文件,在CFLAGS+=-O2-DLINUX-D_GNU_SOURCE-Wall-shared-fPIC后加上I//usr/loc al/video/jpeg//include,把$(CC)$(CFLAGS)-ljpeg-o$@input_uvc.c v412uvc.lo jpeg_utils.lodynctrl.lo代碼修改為$(CC)$(CFLAGS)-ljpeg-L/usr/local/video/jpeg/lib-o$@input_uvc.c v412uvc.lojpeg_utils.lo dynctrl.lo,從而加載前面編譯安裝的jpeg庫文件,使得MJPG-streamer能夠調(diào)用到j(luò)peg庫。

(5)交叉編譯:make CC=arm-linux-gcc,交叉編譯器為arm-linux-gcc4.3.2,生成ARM板可執(zhí)行的二進制文件。

網(wǎng)絡(luò)視頻采集系統(tǒng)軟件流程圖如圖4所示。

4 系統(tǒng)測試

將應(yīng)用程序通過超級終端工具傳輸?shù)紸RM板上,設(shè)置視頻服務(wù)器應(yīng)用程序start_uvc.sh開機啟動,將交換機引出的雙絞線通過RJ-45接口連接到ARM板,在超級終端下進入ARM板,用ifconfig命令配置服務(wù)器相應(yīng)網(wǎng)段的IP地址,將板子上電之后即可執(zhí)行視頻采集程序。從客戶端瀏覽器輸入ARM板IP地址發(fā)出訪問請求,服務(wù)器接收到請求后與客戶端建立連接,將視頻數(shù)據(jù)發(fā)送到客戶端監(jiān)聽端口,客戶端就可以得到連續(xù)的現(xiàn)場現(xiàn)場畫面,從而實現(xiàn)網(wǎng)絡(luò)視頻采集功能。客戶端測試畫面如圖5所示。

[!--empirenews.page--]

5 結(jié)語

隨著互聯(lián)網(wǎng)的不斷發(fā)展,視頻信息采集進入到一個新的時代,本系統(tǒng)設(shè)計基于S3C2440的高速信息處理能力和豐富的硬件接口,在網(wǎng)絡(luò)功能強大的Linux操作系統(tǒng)平臺下,移植MJPG-streamer視頻流服務(wù)器,模塊結(jié)構(gòu)清晰,易于管理,利用現(xiàn)有網(wǎng)絡(luò)資源,很容易實現(xiàn)遠程的網(wǎng)絡(luò)視頻采集,克服了現(xiàn)有視頻采集的距離問題,開發(fā)簡單,可移植性高,并且系統(tǒng)運行穩(wěn)定。

系統(tǒng)改進思路:無線局域網(wǎng)WLAN成為無線通信使用熱點,通過移植WIFI模塊可以實現(xiàn)無線網(wǎng)絡(luò)視頻采集,從而擺脫網(wǎng)線的限制,更加方便使用,在MJPG-streamer軟件中有一個input_control.so的輸入插件沒有用到,加上該插件可以實現(xiàn)攝像頭的位置的控制,比如自動跟蹤的功能,另外可以加入智能模式識別算法,從攝像頭讀取的視頻信息識別物體,辨別出人、動物、汽車等物體,從而是系統(tǒng)功能更加強大。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉