Intel Edison用mjpg-streamer进行视频传输

来源:互联网 发布:linux怎样启动tomcat 编辑:程序博客网 时间:2024/05/21 12:44
intel Edison可以用opencv读取摄像头数据,也可以用mjpg-streamer读取,但是如果要进行远程视频传输,无疑是mjpg-streamer为最佳选择(简单易用传输速度快,opencv主要还是用其强大的图像处理能力,可进行人脸跟踪什么的)。输出格式为mjpg

首先要说明的是,mipg-streamer支持一般的UVC摄像头(即市面上的usb免驱摄像头一般都是可以用的)

接下来说说怎么在Edison(这里我的Edison的系统是yocto2.1,是目前最新的)上安装mjpg-streamer并使用它。

1.首先要用opkg安装两个软件包:libjpeg-dev和 libv4l-dev。
具体就是在/etc/opkg目录下新建一个.conf配置文件,这里就命名为opkg_test.conf吧,之后打开它并写入:
src intel-iotdk http://iotdk.intel.com/repos/3.0/intelgalactic
src i586 http://iotdk.intel.com/repos/3.0/iotdk/i586
src x86 http://iotdk.intel.com/repos/3.0/iotdk/x86
再之后保存,并在xshell(我用到的是xshell通过ssh登录edison,putty这些通过串口登录也是可以的)输入:opkg update,之后在输入:opkg libjpeg-dev libv4l-dev即可完成对libjpeg-dev和llibv4l-dev的安装

2.安装mjpg-streamer。可去openwrt中文网里的下载中心下载个mjpg-streamer-xxx.tar.bz2的文件,如下图:
从上面的文件里挑一个下载,下载完后可直接解压出一个文件夹(注意:现在这个文件夹如果直接传到Edison里make的话,会出现编译错误,要进行一些修改才行),要修改.c文件里所包含的头文件,具体就是:把input_control,input_testpicture,input_uvc,output_autofocus,ouput_file,output_http,output_rtsp,output_udp里的所有.c文件和input_gspcav1里的utils.c和spacv4l.h文件,mjpg-streamer.c的#include <linux/videodev.h>语句改为#include <linux/videodev2.h>,再加上#include <linux/types.h>;修改完后就把文件夹传到Edison里,并进入该文件夹make就行了(这里我是在/目录下创建了一个Will_Space的文件夹用于存放自己所需的程序这些,读者可以自行修改)

3.
之后输入(用来启动mjpg-streamer):
./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r 640x480 -f 108" -o "./output_http.so -p 8888 -w ./www"亲测:-f后的参数设为108(或更高也行),分辨率设为自己用的摄像头的分辨率最佳(如我用的是640x480的USB免驱摄像头,就设为640x480)

4.启动了mjpg-streamer后,就可以通过网页获取摄像头的内容了,在浏览器地址访问(我的Edison IP为192.168.191.11,mjpg-streamer的访问端口是8888,这些参数可更改):192.168.191.11:8888即可进入mjpg-streamer的页面;而输入http://192.168.191.11:8888/javascript_simple.html
即可访问视频页面。(8888端口效果不错)

PS:mjpg-streamer里面的javascript_simple.html里的内容可以更改,用得是javascript语言,用Visual Studio打开它,里面有个img对象,即为显示视频的,加个img.height = "240"和img.width = "320"即可改视频大小为320*240
1 0
原创粉丝点击