mjpg-streamer的编译及其结合嵌入式轻型boa服务器的联调

       mjpg-streamer是用于从支持uvc格式的摄像头(一般的USB摄像头)采集图像,把他们以流的形式通过基于ip的网络传输到浏览器(FirehoxCambozola)VLC播放器,Windows的移动设备或者其他拥有浏览器的移动设备。可以利用某些webcams的硬件压缩功能来降低服务器CPU的开销。为嵌入式设备和一些常规服务器提供了一个轻量且更少CPU消耗的方案,因为无需为视频帧压缩浪费大量的计算效率(这件事交给硬件了)。应用实例:在一个主频200MHz的路由器上(一个例子是cisco经典无线的linkfs WRT54G路由,运行openWRT(迷你linux系统),主频200MHz,4MRAM,16Flash),流编码一个960x720像素的视频,可以减少10%cpu使用。详细介绍:mjpg-streamer

Linux下采用如下的命令下载mjpg-streamer:

svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer

或者到这个链接下载:mjpg-streamer

下载完成后,进入mjpg-streamer目录,执行make命令,即可完成编译。会有如下几个文件形成:

input_uvc.so   output_file.so 
input_file.so   mjpg_streamer  output_http.so 
input_testpicture.so       output_udp.so
为了方便使用webcamera,我们新建启动脚本start.sh

#!/bin/bash
./mjpg_streamer -i "./input_uvc.so“ -o "./output_http.so -p 8080 -w ./www"

连接上usb摄像头,终端键入./start.sh启动mjpg-streamer,然后浏览器中输入:

http://localhost:8080/stream.html
点击左边框有streamer的选项,即可看到摄像头实时拍摄到的情况。

下面我们结合boa测试mjpg-streamer,关于轻型web服务器boa的安装配置参考前面的博客:boa的下载、编译、配置
我们把mjpg-streamer目录下的www重命名为camerawww。并且复制到/var/www/boa下。修改mjpg-streamer的启动脚本如下:

#!/bin/bash
./mjpg_streamer -i "./input_uvc.so -r 640*480 -d /dev/video1" -o "./output_http.so -p 8080 -w /var/www/boa/camerawww"
脚本新添加了几个参数,指定了设备为 /dev/video1,视频的分辨率为640*480,视频传输的端口为8080,调用相关web页面位于/var/www/boa/camerawww。

切换目录到/var/www/boa下,复制camerawww下的cambozola.jar到当前目录,并且更改其权限:

cp ./camerawww/cambozola.jar  .
chmod 777 cambozola.jar

然后启动boa服务器,终端键入下面的命令:

boa & 

在此目录下新建index.html文件:



Webcamera




    Web camerapage!

注意,根据自己的实际情况修改ip地址,例如我的是192.168.56.101。

然后不同的客户端的浏览器中键入ip地址即可查看视频信息。

Warning:在有些电脑上测试,发现不能显示出视频,由于cambozola.jar是基于java的一个程序,所以客户端浏览器解析的时候需要java插件支持,故按照浏览器提示安装java插件。安装完成后,又提示安全等级过低。浏览器阻止之类云云~~~要做的修改是:打开控制面板,点击程序,选择java,将安全等级调低,并且添加http://192.168.56.101为可信的站点,保存,重新启动浏览器即可发现可以查看视频了!!









你可能感兴趣的:(嵌入式项目)