您的位置:首页 > 运维架构 > Linux

编译篇 彻底玩转 S3C2440 Linux 摄像头 (包括USB和COMS摄像头)

2010-12-04 17:37 483 查看
彻底玩转 S3C2440 Linux 摄像头(包括USB和COMS摄像头)

转载时请注明出处和作者联系方式
文章出处:http://www.lt-net.cn
作者联系方式:刘敏 <qtgirl666@gmail.com>

编译系统Ubuntu10.04
交叉编译器arm-linux-gcc 4.3.3
硬件设备LT2440开发板 USB或者CMOS摄像头
测试软件mjpg_streamer
依赖库SDL-1.2.14 jpegsrc.v8b.tar.gz
1.mjpg_streamer 简介
mjpg_streamer 是一个命令行的程序,从输入设备拷贝图像数据到输出设备,默认是支持单输入多输出的。它的输出就是一帧帧jpeg图片,它可以输出到不同的设备,可以用不同的程序通过网络查看它输出的内容(各种浏览器:搜狗,谷歌浏览器等,各种播放器Mplayer,QQ播放器,还有Windows Mobile的TCPMP-Player)。它可以作为一个网络摄像机的后台程序。程序结构非常清晰,程序采用插件的方式,动态加载不同的输入输出库文件,使得程序非常易于扩展。当然他的缺点就是传输的mjpeg图像,压缩不够,数据量比较大,使用MPEG4标准压缩传输可以达到更好的效果。
下载地址:http://mjpg-streamer.svn.sourceforge.net/viewvc/mjpg-streamer.tar.gz?view=tar
有个输出模块依赖SDL库,SDL库比较有意思,下一步重点学习。
SDL下载地址: http://www.libsdl.org/release/SDL-1.2.14.tar.gz
jpeg库下载地址:http://www.ijg.org/files/jpegsrc.v8b.tar.gz

以下的“/home/pk ”录我的用户目录请根据你的修改”

2.编译SDL,经典三部曲 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 ,需要手动修改一些文件
解压mjpg_streamer
$ tar jxf mjpg-streamer.tar.bz2
$ cd mjpg-streamer/mjpg-streamer/
#我们只需要mjpg-streamer目录下的内容 还有需要用到mjpeg-client目录下远程测试程序
修改mjpg-streamer目录下的所有的makefile 文件,将
# set the compiler to use
CC = gcc
改为 CC =arm-linux-gcc。这个目录下包括子目录的makefile都要改
还需要修改mjpg-streamer/mjpg-streamer/plugins/output_viewer目录下的makefile 加入SDL库的链接支持,修改如下
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放到你文件系统bin目录下
将output_file.so output_http.so output_viewer.so input_uvc.so input_file.so 放到你/lib/modules/目录下
将/home/pk/sdl/lib 目录下的文件都拷贝到/lib目录下,解决找不到库的问题
就可以进行测试了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: