树莓派上MJPG-streamer的安装过程

MJPG-streamer是一个优秀的开源project,它可以通过HTTP的方式访问linux上面的兼容摄像头,从而做到远程视频传输的效果。最近导师的一个project和远程视频传输有关,于是笔者在树莓派上面搭建视频传输环境的时候直接选择了MJPG-streamer。现在将整个搭建的过程贴出来,供大家参考。

1.搭建环境以及硬件设备

树莓派B+、树莓派原生的操作系统(官网可下载)、树莓派的专用摄像头Raspberry Pi Camera。其实现在市面上可以很容易买到的USB摄像头会更加方便,但是笔者手头上暂时只有Raspberry Pi Camera,就将就使用了,并且使用Raspberry Pi Camera由于驱动问题要比USB摄像头多几个安装步骤。

2.Enable树莓派摄像头

Raspberry Pi Camera插到正确位置后(注意别插反了),供电开机。用putty进入树莓派后,enable摄像头(执行一次即可,无需每次开机都执行):

sudo raspi-config

进入后,将camera一项enable,然后重启:

sudo reboot

3.安装必要的库

命令行直接敲以下指令:

sudo apt-get update sudo apt-get install subversion sudo apt-get install libjpeg8-dev sudo apt-get install imagemagick sudo apt-get install libv4l-dev sudo apt-get install cmake sudo apt-get install git

4.git开源的project到本地,编译

sudo git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental make all sudo make install

如果是普通的USB摄像头,这个时候应该可以使用了,在命令行输入:

./mjpg_streamer -i “./input_uvc.so” -o “./output_http.so -w ./www”

如果是Raspberry Pi Camera,会报错。

这是因为V4L driver 不支持raspberry pi的camera,所以初始化失败。

5.解决V4L driver不支持的问题

安装必要的库:

sudo wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc && sudo apt-key add ./lrkey.asc

修改sources list

sudo nano /etc/apt/sources.list

在最后加上一行:

deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main 继续安装: sudo apt-get update sudo apt-get install uv4l uv4l-raspicam sudo reboot

重启之后:

sudo pkill uv4l sudo apt-get update sudo apt-get install uv4l-uvc sudo apt-get install uv4l-xscreen sudo apt-get install uv4l-mjpegstream sudo reboot

再一次重启之后:

sudo modprobe bcm2835-v4l2 ./mjpg_streamer -i “./input_uvc.so -d /dev/video0 -n -y -f 25 -r 640×480” -o “./output_http.so -n -w /usr/local/www”

然后打开浏览器输入:

http://raspberry-ip-address:8080/?action=stream

应该就可以看到Raspberry Pi Camera采集的动态视频了,延迟大概不超过0.8秒吧。

注意:

sudo modprobe bcm2835-v4l2

这条命令是每一次都要先执行然后才可以打开摄像头,不妨把它设为开机启动执行吧。

6. 参考文献

原文链接。