MJPG-streamer是一个优秀的开源项目,它可以通过HTTP的方式访问linux上面的兼容摄像头,从而做到远程视频传输的效果。最近小组的一个项目和计算机视觉有关,于是本鼠鼠在树莓派上面搭建视频传输环境的时候选择了MJPG-streamer。现在将整个搭建的过程记录下来,供大家参考。

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

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

2.启用树莓派摄像头

摄像头插好后,供电开机。ssh进树莓派后,在树莓派的配置中启用摄像头(执行一次即可,无需每次开机都执行)

#进入树莓派设置页面
sudo raspi-config
#找到Camera并启用(Interface->Camera)
#然后重启
sudo roboot

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.克隆并编译项目

sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make all
sudo make install
#赋予脚本执行权限
chmod +x start.sh

5.运行MJPG-streamer

#进入项目目录
cd mjpg-streamer/mjpg-streamer-experimental
#运行启动脚本
sudo start.sh

6.关于ERROR opening V4L interface: No such file or directory

如果你遇到这种情况,首先检查是否将摄像头安装好了,没插上就是这个错误。

7.查看摄像头输出的视频

在浏览器中输入

http://[树莓派ip]:8080

即可看到MJPG-Streamer的Demo页面

img

或直接输入

http://192.168.3.35:8080/?action=stream

可获得摄像头的实时视频流

img

如何使其在后台运行

如果想要使其在后台运行的话,我想到了两种方法

  1. 使用Screen单独开一个命令窗口
  2. 创建一个Service,同时可以实现开机自启动(推荐)

关于Screen的使用方法:https://hash070.top/linux-screen.html

如何创建Service:https://hash070.top/linux-service-note.html

Q.E.D.