本文参考了小不点儿的毕业论文和大牛的文章,在此表示感谢!
http://bbs.ednchina.com/BLOG_ARTICLE_3008135.HTM
一、jpeg库的移植
1. 下载源码
MJPG-streamer程序调用了jpeg库文件,因此在进行移植之前,我们需要先移植jpeg库。从网站http://www.ijg.org/files/jpegsrc.v8b.tar.gz下载源码包,代码如下:
tar xvf jpegsrc.v8b.tar.gz
#cd jpeg-8b
2. 修改配置
#./configure--prefix=/home/linux/s3c2410-2.6.35/video/jpeg --host=arm-none-linux-gnueabi
3. 编译与安装
#make
#make install
在/home/linux/s3c2410-2.6.35/video/jpeg/lib目录下会生成如下文件
libjpeg.a libjpeg.so libjpeg.so.8.0.2
libjpeg.la libjpeg.so.8 libjpeg.so.8.3.0
4.拷贝文件
拷贝libjpeg.s0.8链接和 libjpeg.so.8.0.2库到开发板文件系统lib下中
二、 MJPG-streamer的移植
1.下载源码
安装好jpeg库后即可进行MJPG-streamer的移植,源码包下载地址为http://sourceforge.net/projects/mjpg-streamer/,但源码不能直接编译,结合ARM11的硬件设备以及烧写的Linux 2.6.36系统,需对源码做一定修改,主要如下:
#tar xvfmjpg-streamer-r63.tar.gz
#cd mjpg-streamer-r63
2.修改源码
2.1 修改顶层makefile及plugins目录中的各级makefile:
将所有CC=gcc修改为CC=arm-none-linux-gnueabi-gcc。
2.2 修改plugins/input_uvc/Makfile:
修改$(CC) $(CFLAGS)-ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.l o dynctrl.lo
为$(CC) $(CFLAGS) -ljpeg-L/home/linux/s3c2410-2.6.35/video/jpeg/lib -o $@ input_uvc.c v4l2uvc.lojpeg_utils.lo dynctrl.lo
修改CFLAGS += -O2-DLINUX -D_GNU_SOURCE -Wall -shared –fPIC
为CFLAGS+=-O2 -DLINUX-D_GNU_SOURCE -Wall -shared -fPIC -I/home/linux/s3c2410-2.6.35/video/jpeg/include3.编译
#make
4.测试
4.1 在开发板上mkdir /mjpeg
4.2 拷贝*.so到开发板的mjpeg目录下,mjpg_streamer到开发板的bin下并改变权限
4.3 打开开开发板运行
#mjpg_streamer -i "/mjpeg/input_uvc.so -d /dev/video2" -o "/mjpeg/output_http.so"
4.4 验证
用火狐浏览器打开一个网页输入下面地址就能够看到一个视频(开发板的IP为192.168.1.100):
http://192.168.1.100:8080/?action=stream
打开一个网页输入下面地址就能够看到一个静态图片:
http://192.168.1.100:8080/?action=snapshot