《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式Linux系統下的視頻服務器解析方案
嵌入式Linux系統下的視頻服務器解析方案
中電網
摘要: 本文根據網絡視頻采集的需要,將網絡傳輸與視頻采集相結合,設計了以S3C2440為核心的USB攝像頭視頻采集和嵌入式Linux系統下的視頻服務器,從而實現了遠程網絡視頻信息采集。
Abstract:
Key words :

0 引言

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

本文根據網絡視頻采集的需要,將網絡傳輸與視頻采集相結合,設計了以S3C2440為核心的USB攝像頭視頻采集和嵌入式Linux系統下的視頻服務器,從而實現了遠程網絡視頻信息采集。

1 系統總體設計

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

2 系統硬件設計

系統的硬件框圖如圖2所示。

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

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

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

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

3 系統軟件設計

本系統軟件可分為Bootloader,Linux內核,Yaffs文件系統和MJPG-streamer視頻服務器,系統框圖如圖3所示。

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

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

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

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

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

(2)input_uvc.so。此文件調用USB攝像頭驅動程序V4L2,從攝像頭讀取視頻數據。

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

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

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

將MJPG-streamer視頻流服務器移植到目標板上運行,從而可以實現網絡視頻數據的采集,具體移植過程:

(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文件拷貝到文件系統中的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能夠調用到jpeg庫。

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

網絡視頻采集系統軟件流程圖如圖4所示。

4 系統測試

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

5 結語

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩欧美一级 | 九九碰 | 中文字幕视频免费 | 成人福利软件 | 精品久久天干天天天按摩 | 一级午夜a毛片免费视频 | 日韩在线视精品在亚洲 | 成人黄色在线观看视频 | 日本人欧美xx | 一级黄色片毛片 | 日韩美女一级毛片a | 亚洲一区二区三区欧美 | 色视频www在线播放国产人成 | 国产一区二区在线观看动漫 | 国产日韩欧美在线 | 日韩亚洲欧洲在线com91tv | 日韩经典第一页 | 久久手机免费视频 | 国产亚洲一区二区三区不卡 | 日韩视频一区二区在线观看 | 日日夜夜精品 | 日韩不卡中文字幕 | 2020久久国产最新免费观看 | 韩日免费视频 | 天天操夜夜添 | 日韩在线 | 中文 | 免费看片黄| 一区二区三区成人 | 丁香六月综合 | 五月香婷婷 | 91亚洲精品| 欧美双茎同入视频在线观看 | 艾草在线精品视频播放 | 国产小视频在线 | 女攻高h全肉污文play | 精品国产欧美一区二区最新 | 一级片aaaa | 国产成人精品免费视 | 极品美女aⅴ高清在线观看 极品美女丝袜被的网站 | 日韩欧美一区二区三区 | 久久99精品视免费看 |