mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植mjpg-streamer之前必须先移植jpeg库,否则在编译mjpg-streamer时会报告错误。
现在这里下载jpeg库的源代码和mjpg-streamer源代码:
jpeg库下载地址:http://download.youkuaiyun.com/detail/laoylhuli/5029006
mjpg-streamer源代码下载地址:http://download.youkuaiyun.com/detail/laoylhuli/5029022
1、jpeg库的移植:
1)、解压源码包
- #tar zxvf jpegsrc.v8b.tar.gz
- #./configure --prefix=/home/laoyl/jpeg --host=arm-none-linux-gnueabi
- #make
- #make install
安装完毕在指定的安装路径下/home/laoyl/jpeg出现了bin include lib share 4个文件夹,将lib目录下的所有库文件移植到开发板根目录下的lib下就可以了
2、mjpg-streamer源代码移植:
1)、解压源码包
- #tar zxvf mjpg-streamer-r63.tar.gz
CC=gcc
修改为
CC=arm-none-linux-gnueabi-gcc #编译器替换成交叉编译器
3)、定位jpeg库
修改plugins/input_uvc/Makfile
修改
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
为
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/laoyl/jpeg/include
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
为
$(CC) $(CFLAGS) -ljpeg -L/home/laoyl/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
- #make
5)、运行
在开发板上执行
- mjpg_streamer -i "input_uvc.so" -o "output_http.so -w /www"
具体的指令请看start.sh脚本,这个脚本里面包含了一些基本指令,例如打开的视频设备号,和图像是否保存等。
在火狐浏览器下http://192.168.1.230:8080/?action=stream (192.168.1.230是自己的开发板ip,不同的开发板ip会不同)。
在火狐浏览器下http://192.168.1.230:8080/?action=snapshot (静态图片)