在zedboard上移植和搭建嵌入式网络摄像机mjpg-streamer。具体步骤如下:

来自:http://write.blog.csdn.net/postedit/13741451

1.安装libtool工具

1.1 下载libtool工具libtool-2.2.10.tar.gzhttp://mirrors.ustc.edu.cn/gnu/libtool/

1.2  tar -xvzf libtool-2.2.10.tar.gz -C /home/xzy/sdb1/JPEG/

1.3  进入解压后的目录,执行./configure

1.4  make

1.5  make install


2.JPEG编码库移植

2.1 下载JPEG源码包,选择jpegsrc.v6b.tar.gz    http://www.ijg.org/files/

2.2  解压  tar jpegsrc.v6b.tar.gz  -C /home/xzy/sdb1/JPEG/

2.3  进入解压后的目录,将刚刚libtool-2.2.10目录下的libltdl/config/config.sub和config.guess拷贝至此目录中。

2.4  配置./configure CC=arm-xilinx-linux-gnueabi-gcc  --host=arm-unknown-linux 

–prefix=/home/xzy/sdb1/JPEG/jpeg-6b  --enable-shared   --enable-static

2.5  make

2.6  进入安装路径,创建如下目录   mkdir bin lib include man man/man1,我的安装目录就在这个目录,注意必须要创建这些目录,不然是不然make install的(试过了。)

2.7  make install,然后就ok了。


3.mjpg-streamer移植

3.1 下载源码http://sourceforge.net/projects/mjpg-streamer/files/mjpg-streamer/Sourcecode/

3.2     解压tar -xvzf mjpg-streamer-r63.tar.gz  -C  /home/xzy/sdb1/JPEG/


3.3 进入解压后的目录,修改./plugins/input_uvc目录下的Makefile文件

修改1:将CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC改为
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I
/home/xzy/sdb1/JPEG/jpeg-6b/include


修改2:

将$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo改为
$(CC) $(CFLAGS) -ljpeg –L
/home/xzy/sdb1/JPEG/jpeg-6b/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo



3.4 
编译make CC=arm-xilinx-linux-gnueabi-gcc,出错


提示找不到linux/videodev.h,原因是在2.6.38内核以后移除了对v411的支持,新的头文件是linux/videodev2.h

修改mjpg-streamer-r63/plugins/input_uvc/v4l2uvc.h

修改mjpg-streamer-r63/plugins/input_uvc/uvcvideo.h

修改mjpg-streamer-r63/plugins/input_uvc/input_uvc.c

修改mjpg-streamer-r63/mjpg_streamer.c

修改mjpg-streamer-r63/plugins/output_file/output_file.c

修改mjpg-streamer-r63/plugins/output_http/output_http.c

修改mjpg-streamer-r63/plugins/input_testpicture/input_testpicture.c

修改mjpg-streamer-r63/plugins/output_autofocus/output_autofocus.c

修改mjpg-streamer-r63/plugins/input_gspcav1/spcav4l.h

修改mjpg-streamer-r63目录下的Makefile文件,将$(CC) $(CFLAGS) $(LFLAGS) $(OBJECTS) -o $(APP_BINARY)改为$(CC) $(CFLAGS) $(OBJECTS) $(LFLAGS) -o $(APP_BINARY)

mjpg-streamer-r63/目录下执行make CC=arm-xilinx-linux-gnueabi-gcc

编译还是出错,如下图,但是已经生成了一些lib文件,具体错误的原因有待查明。

ls 看一下:

拷贝出我们需要的mjpg_streamer,output_http.so,input_uvc.so,已经libjpg的一些库,有如下

4测试

启动demo系统,拷贝那些lib到/usr/lib下面去,mkdir /www/camwww这个目录,插好网线和usb摄像头。

运行./mjpg_streamer -i "/usr/lib/input_uvc.so -yuv" -o  "/usr/lib/output_http.so -p 8080 -w /www/camwww"

我的摄像头那里必须要有-yuv,不然报错

_http.so -p 8080 -w /www/camwww"
MJPG-streamer [726]: starting application
MJPG Streamer Version.: 2.0
MJPG-streamer [726]: MJPG Streamer Version.: 2.0

i: Using V4L2 device.: /dev/video0
MJPG-streamer [726]: Using V4L2 device.: /dev/video0

i: Desired Resolution: 640 x 480
MJPG-streamer [726]: Desired Resolution: 640 x 480

i: Frames Per Second.: 5
MJPG-streamer [726]: Frames Per Second.: 5

i: Format............: MJPEG
MJPG-streamer [726]: Format............: MJPEG

Unable to set format: Invalid argument
 Init v4L2 failed !! exit fatal 
 i: init_VideoIn failed
MJPG-streamer [726]: init_VideoIn failed

还有需要注意的是:最好直接把摄像头插在路由器上我插在没有外接电源的HUB不能成功 ,不然报错

Unable to start capture: No space left on device(设备空间不足)
i: Error grabbing frames

如果出现下面的就成功了,

用Mozilla Firefox来打开 202.38.214.211/?action=stream就可以了看到下面的情景。

 有点慢,可能是一秒传送的帧数比较少,5帧。

用360浏览器和ie打开就是显示和boa服务器那样的图片。另外还有一些问题没有解决,也没有喝Boa服务器结合使用。


zedboard--嵌入式网络摄像机(mjpg-streamer)的移植和搭建(二十二)的更多相关文章

  1. Java基础学习笔记二十二 网络编程

    络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规则 ...

  2. OpenStack入门篇(二十二)之实现阿里云VPC的SDN网络

    1.修改/etc/neutron/neutron.conf配置 [root@linux-node1 ~]# vim /etc/neutron/neutron.conf [defalut] ... co ...

  3. Redis源代码分析(二十二)--- networking网络协议传输

    上次我仅仅分析了Redis网络部分的代码一部分,今天我把networking的代码实现部分也学习了一遍,netWorking的代码很多其它偏重的是Clientclient的操作.里面addReply( ...

  4. 嵌入式Linux驱动学习之路(二十二)用内存模拟磁盘

    安装驱动后,可在/dev/目录下发现已经生成了相应的设备文件. 格式化设备:mkdosfs /dev/ramblock. 挂载设备. 读写设备 . 驱动程序代码: /***************** ...

  5. 【原创】go语言学习(二十二)网络编程

    目录 TCP/IP协议介绍 GO快速实现TCP服务端 GO快速实现TCP客户端 UDP协议介绍 UDP编程实例 TCP/IP协议介绍 1.互联网起源 A. 起源于美国五角大楼,它的前身是美国国防部高级 ...

  6. Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888

    Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888 用户名admin  密码aaaaaa 网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传 ...

  7. 【RL-TCPnet网络教程】第1章 当前主流的小型嵌入式网络协议栈

    第1章   当前主流的小型嵌入式网络协议栈 这几年物联网发展迅猛,各种新产品.新技术也是层出不穷,本章节就为大家介绍当前主流的小型嵌入式网络协议栈. 1.1  当前主流的嵌入式网络协议栈 1.2  u ...

  8. 基于uIP和uC/OS-II嵌入式网络开发

    基于uIP和uC/OS-II嵌入式网络开发 ——uIP主动发送数据分析 摘要:uIP协议栈简单易用,可以为16位单片机或者是更低级的处理器使用,占用的资源很少,相关移植网上有详细介绍,本文主要讨论uI ...

  9. LwIP协议栈开发嵌入式网络的三种方法分析

    LwIP协议栈开发嵌入式网络的三种方法分析   摘要  轻量级的TCP/IP协议栈LwIP,提供了三种应用程序设计方法,且很容易被移植到多任务的操作系统中.本文结合μC/OS-II这一实时操作系统,以 ...

随机推荐

  1. enumerate()和map()函数用法

    一.python enumerate用法 先出一个题目: 1.有一 list= [1, 2, 3, 4, 5, 6] 请打印输出: 0, 1 1, 2 2, 3 3, 4 4, 5 5, 6 打印输出 ...

  2. 初拾Java(问题二:缺类异常,无法编译)

    昨天,在看JSP页面包含的元素(JSP指令,生命,表达式,动作等)时,拷贝了一个别人的例子来在Myeclipse里运行,结果出现了如下的缺类错误: 多调试两次也会出现如下无法编译的错误: 具体代码如下 ...

  3. vue-router在IE11中页面不跳转

    情景: IE11浏览器中,在进行正常页面跳转操作后(页面A跳转到页面B),点击浏览器的左上角的‘后退’按钮,点击后,可以看到url地址已经发生了变化(url由页面B变为页面A),hash值也已经是上一 ...

  4. 【BZOJ 4070】【APIO 2015】雅加达的摩天楼

    http://www.lydsy.com/JudgeOnline/problem.php?id=4070 分块建图. 对每个\(P_i\)分类讨论,\(P_i>\sqrt N\)则直接连边,边数 ...

  5. codevs 1226 倒水问题

    1226 倒水问题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold   题目描述 Description 有两个无刻度标志的水壶,分别可装 x 升和 y 升 ( x, ...

  6. CROC 2016 - Elimination Round (Rated Unofficial Edition) C. Enduring Exodus 二分

    C. Enduring Exodus 题目连接: http://www.codeforces.com/contest/655/problem/C Description In an attempt t ...

  7. codeforces VK Cup 2015 - Qualification Round 1 B. Photo to Remember 水题

    B. Photo to Remember Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/522/ ...

  8. Codeforces Round #300 C. Tourist's Notes 水题

    C. Tourist's Notes Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/pr ...

  9. JQ 使用模板

    1.首先需要添加模板JS文件,

  10. centos安装gcc

    1.安装gcc基本开发工具环境 yum groupinstall 'Development Tools' 2.安装完成后查看安装是否成功 whereis gcc 3.查看gcc版本 gcc --ver ...