在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. HDU 3074.Multiply game-区间乘法-线段树(单点更新、区间查询),上推标记取模

    Multiply game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  2. SSH整合最简单的一个例子

    1.新建mysql数据库   create database spring; 切换数据库 use spring; 新建表 create table user (id int(3) auto_incre ...

  3. Poj1741/洛谷P4718 Tree(点分治)

    题面 有多组数据:Poj 无多组数据:洛谷 题解 点分治板子题,\(calc\)的时候搞一个\(two\ pointers\)扫一下统计答案就行了. #include <cmath> #i ...

  4. 编写WPF程序,完成弹框打印和直接打印

    弹框打印 PrintDialog pd = new PrintDialog(); pd.ShowDialog(); //↓第一个参数是StackPanel控件里面放一个label放打印的文字 pd.P ...

  5. 【Leetcode】583. Delete Operation for Two Strings

    583. Delete Operation for Two Strings Given two words word1 and word2, find the minimum number of st ...

  6. Python协程(下)

    停止子线程 如果一切正常,那么上面的例子很完美.可是,需要停止程序,直接ctrl+c,会抛出KeyboardInterrupt错误,我们修改一下主循环: try: while True: task = ...

  7. FastReport.Net使用:[20]条码控件使用

    在日常生活中,条码用的越来越多,“扫一扫”目前是非常的流行.报表设计也要跟上时代,打印出条码,方便信息流转. FastReport对条码的支持很不错,支持很多类型的条码,还包括二维码. 几个常见问题 ...

  8. 【BZOJ 2460】线性基

    2460: [BeiJing2011]元素 Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力 ...

  9. [BZOJ5028]小Z的加油店

    [BZOJ5028]小Z的加油店 题目大意: 一个长度为\(n(n\le10^5)\)的数列,\(m(m\le10^5)\)次操作,支持区间加和区间\(\gcd\). 思路: 线段树维护差分,\(\g ...

  10. 注解@Aspect实现AOP功能

    springboot中pom引入jar <!-- aop 切面 --> <dependency> <groupId>org.springframework.boot ...