mjpg-streamer是用于从支持uvc格式的摄像头(一般的USB摄像头)采集图像,把他们以流的形式通过基于ip的网络传输到浏览器(Firehox,Cambozola),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文件:
<html> <head> <title>Webcamera</title> <http-equiv="Content-Type" content="text/html; charset=utf-8"/> </head> <body> <ul> <div align = "center"> <b> Web camerapage!</b></div><br> <iframe name="server" style="display:none;" src=''></iframe> <div> <applet code="com.charliemouse.cambozola.Viewer" archive="./cambozola.jar" width="640" height="480"> <param name="url" value="http://192.168.56.101:8080/?action=stream"/> <param name="watermarks" value="/favicon.png|left,top"/> </applet> </div> </ul> </body> </html>注意,根据自己的实际情况修改ip地址,例如我的是192.168.56.101。
然后不同的客户端的浏览器中键入ip地址即可查看视频信息。
Warning:在有些电脑上测试,发现不能显示出视频,由于cambozola.jar是基于java的一个程序,所以客户端浏览器解析的时候需要java插件支持,故按照浏览器提示安装java插件。安装完成后,又提示安全等级过低。浏览器阻止之类云云~~~要做的修改是:打开控制面板,点击程序,选择java,将安全等级调低,并且添加http://192.168.56.101为可信的站点,保存,重新启动浏览器即可发现可以查看视频了!!