树莓派智能车AlphaBot教程7:mjpg-streamer 网络视频监控

来自丢石头百科


wifi遥控小车,网络视频监控是必不可以的部分,这一张讲解一下如何通过树莓派摄像头实现网络视频监控。mjpg-streamer是一个网络摄像头监控软件,是很好的开源项目。通过mjpg-streamer可以非常容易实现网络视频监控功能。


启动摄像头 要实现网络视频监控首先得要有一个摄像头,可以选择USB接口的摄像头或者树莓派专用摄像头。 下面以树莓派专用摄像为例,使用树莓派摄像头前必须运行raspi-config命令启用摄像头:

===   cpp代码: ===

sudo raspi-config

选择Enable Camera。


如果是使用CSI接口的摄像头,那么系统找不到/dev/video0的设备节点。需要在/etc/modules文件中添加一行bcm2835-v4l2:

===   cpp代码: ===

sudo nano /etc/modules

加上:

bcm2835-v4l2

那么系统启动之后,系统会加载这个文件中的模块名。重启系统后会在/dev下面发现video0设备节点。(bcm2835-v4l2中的l为L的小写,不是1)


安装软件 我们示例程序中提供的软件是一件编译过的了,直接解压后既可以使用。这里作为教程再讲解一下如何编译mjpg-streamer软件。

源码地址:

http://mjpg-streamer.svn.sourceforge.net/viewvc/mjpg-streamer/

安装依赖库:

===   cpp代码: ===

pi@raspberrypi:~ $ sudo apt-get install libv4l-dev libjpeg8-dev
pi@raspberrypi:~ $ sudo apt-get install subversion

下载源码:

svn co 

https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer

修改源码: mjpg-stream支持JPEG和YUV两种格式。而摄像头大多都是支持YUV的,而不是JPEG的。修改mjpg-streamer/plugins/input_uvc/input_uvc.c文件, 将V4L2_PIX_FMT_MJPEG 改成 V4L2_PIX_FMT_YUYV


 vi ~/mjpg-streamer/plugins/input_uvc/input_uvc.c


111228vbco2825t5oowr6p.png


编译程序:

===   cpp代码: ===

cd ~/mjpg-streamer/
make USE_LIBV4L2=true clean all
开启mjpg-streamer:
sudo ./start.sh

然后在浏览器地址栏内输入树莓派ip地址,端口号8080,页面会显示关于MJPEG streamer的信息。点击Stream会实时显示摄像头拍摄的内容。


111228rcbtcr3ggv5krzsj.png


当然也可以用如下命令启动

sudo ./mjpg_streamer -i "./input_uvc.so -n -d /dev/video0 -r 640x800 -f 5" -o "./output_http.so -p 8080 -w ./www"

-i 后面是输入参数

-o 后面是输出参数

-d 后面为设备参数,此处为/dev/video0

-f 后面是帧率

-p 后边是端口号