徹底玩轉(zhuǎn) S3C2440 Linux 攝像頭(包括USB和COMS攝像頭)
發(fā)布時(shí)間:2019-04-16 閱覽次數(shù):1626 次
徹底玩轉(zhuǎn) S3C2440 Linux 攝像頭(包括USB和COMS攝像頭)
編譯系統(tǒng)
|
Ubuntu10.04
|
交叉編譯器
|
arm-linux-gcc 4.3.3
|
硬件設(shè)備
|
LT2440開發(fā)板 USB或者CMOS攝像頭
|
測(cè)試軟件
|
mjpg_streamer
|
依賴庫(kù)
|
SDL-1.2.14 jpegsrc.v8b.tar.gz
|
1.mjpg_streamer 簡(jiǎn)介
mjpg_streamer 是一個(gè)命令行的程序,從輸入設(shè)備拷貝圖像數(shù)據(jù)到輸出設(shè)備,默認(rèn)是支持單輸入多輸出的。它的輸出就是一幀幀jpeg圖片,它可以輸出到不同的設(shè)備,可以用不同的程序通過網(wǎng)絡(luò)查看它輸出的內(nèi)容(各種瀏覽器:搜狗,谷歌瀏覽器等,各種播放器Mplayer,QQ播放器,還有Windows Mobile的TCPMP-Player)。它可以作為一個(gè)網(wǎng)絡(luò)攝像機(jī)的后臺(tái)程序。程序結(jié)構(gòu)非常清晰,程序采用插件的方式,動(dòng)態(tài)加載不同的輸入輸出庫(kù)文件,使得程序非常易于擴(kuò)展。當(dāng)然他的缺點(diǎn)就是傳輸?shù)?/span>mjpeg圖像,壓縮不夠,數(shù)據(jù)量比較大,使用MPEG4標(biāo)準(zhǔn)壓縮傳輸可以達(dá)到更好的效果。
下載地址:http://mjpg-streamer.svn.sourceforge.net/viewvc/mjpg-streamer.tar.gz?view=tar
有個(gè)輸出模塊依賴SDL庫(kù),SDL庫(kù)比較有意思,下一步重點(diǎn)學(xué)習(xí)。
SDL下載地址: http://www.libsdl.org/release/SDL-1.2.14.tar.gz
jpeg庫(kù)下載地址:http://www.ijg.org/files/jpegsrc.v8b.tar.gz
以下的“/home/pk ”錄我的用戶目錄請(qǐng)根據(jù)你的修改”
2.編譯SDL,經(jīng)典三部曲congfigure ;make ;make install
$ ./configure --prefix=/home/pk/sdl --host=arm-linux
--disable-esd
--disable-pulseaudio
--disable-diskaudio
--disable-dummyaudio
--disable-mintaudio
--disable-altivec
--disable-nas
--disable-nasm
--disable-video-nanox
--disable-video-x11
--disable-video-photon
--disable-video-cocoa
--disable-video-ps2gs
--disable-video-ps3
--disable-video-wscons
--disable-video-dummy
--disable-video-opengl
--disable-osmesa-shared
$ make
$ make install
編譯jpegsrc.v8b.tar.gz
$ tar zxf jpegsrc.v8b.tar.gz
$ cd jpeg-8b/
$ ./configure --prefix=/home/pk/sdl --host=arm-linux
$ make
$ make install
3.編譯mjpg_streamer
mjpg_streamer由于沒有configure,需要手動(dòng)修改一些文件
解壓mjpg_streamer
$ tar jxf mjpg-streamer.tar.bz2
$ cd mjpg-streamer/mjpg-streamer/
#我們只需要mjpg-streamer目錄下的內(nèi)容 還有需要用到mjpeg-client目錄下遠(yuǎn)程測(cè)試程序
修改mjpg-streamer目錄下的所有的makefile文件,將
# set the compiler to use
CC = gcc
改為 CC =arm-linux-gcc。這個(gè)目錄下包括子目錄的makefile都要改
還需要修改mjpg-streamer/mjpg-streamer/plugins/output_viewer目錄下的makefile加入SDL庫(kù)的鏈接支持,修改如下
CFLAGS += -DUSE_SDL -I/usr/include/SDL 這一行改為 CFLAGS += -DUSE_SDL -I/home/pk/sdl/include/SDL -I/home/pk/sdl/include
#CFLAGS += -DDEBUG
LFLAGS += -L/home/pk/sdl/lib -ljpeg -lSDL
接著就可以編譯了。
$ make
編譯之后有一下文件是我們需要的
mjpg_streamer output_file.so output_http.so output_viewer.so input_uvc.so input_file.so
將mjpg_streamer放到你文件系統(tǒng)bin目錄下
將output_file.so output_http.so output_viewer.so input_uvc.so input_file.so放到你/lib/modules/目錄下
將/home/pk/sdl/lib 目錄下的文件都拷貝到/lib目錄下,解決找不到庫(kù)的問題
就可以進(jìn)行測(cè)試了