树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像

网上有很多关于mjpg-stream移植到树莓派的文章,大部分还是使用的sourceforge.net上的mjpg-streamer-r63.tar.gz,该工程版本比较老,在新版系统中编译需要把源码文件中所有 #include<linux/videodev.h>都修改为 #include<linux/videodev2.h> 或者 sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h。改完编译还是会遇到error(文章里提示可以忽略,不需完全编译,用目前编译出来的文件已经可以用)。

下面的文字是使用github上jacksonliam的mjpg-streamer-experimental,在树莓派新版系统上可以进行完全编译,适合强迫症患者。而且还能支持树莓派的专用摄像头Pi Cam。

项目工程:https://github.com/jacksonliam/mjpg-streamer

将工程下载后,传送到树莓派系统中解压:

 unzip mjpg-streamer-master.zip

编译此工程需要用到cmake:

sudo apt-get install cmake

编译前,还需要安装支持库:

sudo apt-get install libjpeg8-dev

然后进入工程mjpg-streamer-experimental,进行完全编译:

make clean all

进入树莓派设置菜单:

sudo raspi-config

移动到第五项“Enable Camera”,回车进入,按tab键切换到“Enable”回车确认。回到主菜单,tab键切换到“Finish”回车确认。树莓派会自动重启。

重启完毕进入系统,命令行进入mjpg-streamer-experimental目录,使用下面指令启动普通USB摄像头:

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"

启动树莓派专用摄像头RaspiCamera的指令是:

./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"

某些摄像头在执行这个指令时会有报错,至少要是最后没有退回到命令行提示符,而且显示“Starting ouput”,就表示成功了。

查看图像,在PC端打开浏览器,输入下面网址可以看到静态截图:

http://<树莓派IP>:8080/?action=snapshot

输入下面两条网址可以看到动态图像:

http://<树莓派IP>:8080/?action=stream

动态图像的这个地址在有的浏览器不太好使,可以使用下面这个网址:

http://<树莓派IP>:8080/javascript_simple.html

PS:使用莓派专用摄像头RaspiCamera的时候动态图像画面会非常卡,大概1.4帧/秒,建议使用静态捕捉。

05-06 17:20