编译jpeg库
1.解压源码
tar xvf jpegsrc.v8b.tar.gz
2.配置源码
cd jpeg-8b
./configure --prefix=/usr/local/jpeg
3.编译
make
4.安装
make install
编译mjpg-stream
1.解压源码
#tar xvf mjpg-streamer-r63.tar.gz
2.编译mjpg-stream源码
#make clean
#make
出现如下错误:
解决办法:
修改plugins/input_uvc/Makefile文件
a.在第 16 行添加需要使用jpeg库和头文件的路径(交叉编译jpeg库时指定的安装目录):
CFLAGS += -I/usr/local/jpeg/include
b.在第
将:$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
改成:$(CC) $(CFLAGS) –ljpeg -L/usr/local/jpeg/lib -o
错误二:
解决办法:
apt-get install imagemagick
测试:
接上USB摄像头,执行:
cd /usr/local/mjpeg-streamer-r63
mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so -w 192.168.56.101:8080"
然后再通过浏览器访问:
http://92.168.56.101:8080/?action=snapshot (每次回车单张抓拍)
或者
http://92.168.56.101:8080/?action=stream (视频流)
cd /usr/local/mjpeg-streamer-r63/plugins/input_uvc/
vim input_uvc.c
int input_init(input_parameter *param, int id)
{
char *dev = "/dev/video0", *s;
int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG, i;
/* initialize the mutes variable */
if(pthread_mutex_init(&cams[id].controls_mutex, NULL) != 0) {
IPRINT("could not initialize mutex variable\n");
exit(EXIT_FAILURE);
}
format = V4L2_PIX_FMT_YUYV
有时会出现:
undefined reference to `dlclose'、`dlopen'等等的错误
解决方法原帖:http://ubuntuforums.org/showthread.php?t=1888233
mjpg-streamer下载:https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/
更多参照:http://blog.sina.com.cn/s/blog_9776e82c0101dypt.html
https://segmentfault.com/q/1010000000263024
http://blog.chinaunix.net/uid-22666248-id-266644.html