分析:
树莓派上有几种视频监控软件 :
- motion
- mjpg-streamer
相同点:都是linux系统上监控用的程序。
不同点:
- motion 通过 motion.conf配置文件,可以设定动态感知的动作。比如有宠物进入摄像头范围内,motion自动捕获截图或者视频,然后触发既定的脚本(sh,python等等)。MJPG-streamer好像不能
- motion比较吃资源,且刷新率设定的不能太高,导致视频不连续。MJPG-streamer就比较流畅。motion比较吃资源,且刷新率设定的不能太高,导致视频不连续。MJPG-streamer就比较流畅。
- motion安装比较简单,通过apt-get就可以。MJPG-streamer需要下载代码,自己 make。当然也得安装必要的依赖包。还好不算很多 motion安装比较简单,通过apt-get就可以。MJPG-streamer需要下载代码,自己 make。当然也得安装必要的依赖包。还好不算很多
motion安装方法:
一、工具
- 1、树莓派3B
- 2、USB摄像头
二、操作步骤
- 1、安装motion
sudo apt-get install motion
- 2、配置motion
(1)
sudo nano /etc/default/motion
将里面的no修改成yes,让motion可以一直在后台运行:start_motion_daemon=yes
(2)
sudo nano /etc/motion/motion.conf
修改配置文件,这个文件比较长,请确保一下参数的配置。在nano编辑器下,可以使用^w快速查找到如下配置内容。也可以使用^v向下翻页。
- 3、启动motion
sudo motion
- 4、查看视频数据
在局域网内的设备,不管是手机还是电脑,均可打开浏览器访问树莓派IP:8081
- 5、退出motion
killall -TERM motion
或者
service motion stop
三、可能出现的问题
- 1、配置错误
出现Unknown config option "sdl_threadnr"
- 解决方法:
在配置文件中,直接将这一行内容进行注释。不是下图光标所在处,是光标下面sdl_threadnr 0
这一行,注释成# sdl_threadnr 0
即可。 - 2、8081页面无法显示
在8081端口,无法显示数据,但是在8080端口可以看到motion的信息。 - 解决方法:
这可能是摄像头没有被识别,可以将摄像头拔下重新插入。
方法二:
分析:
方法一实现的话会发现延时很大,表现出来就是很卡
其实不是很推荐方法一。
实现:
在 GitHub 上有一个开源项目叫 MJPG-streamer
https://github.com/jacksonliam/mjpg-streamer 推荐这个方法的原因是这个开源项目实现的视频监控很流畅,延时很小,所以总的比第一个强一些(安装稍麻烦)
1、 安装必要的库:
命令行直接敲以下指令:
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
2、git 开源的 project到本地
sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
3、编译
cd mjpg-streamer/mjpg-streamer-experimental
make all
sudo make install
如果是普通的USB摄像头,这个时候应该可以使用了,在命令行输入:
./start.sh
然后打开浏览器输入:
http://raspberry-ip-address:8080/ 应该就可以看到Raspberry Pi Camera采集的动态视频了
保险起见,还是设定一下登陆帐号和密码,basic认证一下。
关掉服务后
跟之前命令比较,多了一个 -c userid:password。
可以在 start.sh 中修改 :(用户名和密码自己设置)