树莓派上MJPG-streamer安装手顺

motion和MJPG-streamer异同

相同点:都是linux系统上监控用的程序。
不同点:

  • motion通过motion.conf配置文件,可以设定动态感知的动作。比如有宠物进入摄像头范围内,motion自动捕获截图或者视频,然后触发既定的脚本(sh,python等等)。MJPG-streamer好像不能动态感知(存疑)

  • motion比较吃资源,且刷新率设定的不能太高,导致视频不连续。MJPG-streamer就比较流畅。

  • motion安装比较简单,通过apt-get就可以。MJPG-streamer需要下载代码,自己make。当然也得安装必要的依赖包。还好不算很多。

准备

  • 树莓派 3B(需要提前安装系统和联网)
  • LOGICOOL C270(USB摄像头,请提前测试一下摄像头是否正常)

注意

树莓派经常找不到video0,或者摄像头显示在video1。
现象:执行lsusb的时候,可以看到摄像头的硬件。但是执行ls -l /dev/video*,只能看到video1,却没有video0

那么进行下面的配置文件修改
修改/etc/modules成下面的样子

pi@raspberrypi:~ $ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

i2c-dev
bcm2835-v4l2

安装手顺

更新一下apt-get

sudo apt-get update
sudo apt-get upgrade

安装依赖包

sudo apt-get install subversion libjpeg-dev imagemagick

下载源码

svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer

准备make,移动作业目录

cd mjpg-streamer

make

make

安装

sudo make install

※好像不执行安装也可以,我没实验。建议走稳妥的办法,还是安装一下吧。

停止motion

如果motion 还在启动中的话,先停掉

sudo service motion stop

启动MJPG-streamer

sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 320x240 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080"

内网访问

http://192.168.0.7:8080/stream.html

树莓派上MJPG-streamer安装手顺_第1张图片
效果图

320x240也可以修改为640x480。

设定外网能够访问

  • 在路由器中设定树莓派的内网IP(我的是192.168.0.7)和外网的IP的绑定


    树莓派上MJPG-streamer安装手顺_第2张图片
  • 外网IP确定方法
    http://www.cman.jp/network/support/go_access.cgi

  • 使用外网IP访问监控摄像头
    http://此处是外网IP:8080/stream.html
    效果图


    树莓派上MJPG-streamer安装手顺_第3张图片
    手机4G网络访问效果图

安全

  • 保险起见,还是设定一下登陆帐号和密码,basic认证一下。

关掉服务
一般Ctrl+C就可以,或者执行kill命令

kill -9 pidof mjpg_streamer]

重启服务
跟之前命令比较,多了一个-c userid:password。(帐号密码改为自己想好的)

sudo ./mjpg_streamer -i "./input_uvc.so -f 10 -r 320x240 -d /dev/video0 -y -n" -o "./output_http.so -w ./www -p 8080 -c userid:password"

树莓派上MJPG-streamer安装手顺_第4张图片

效果图

树莓派上MJPG-streamer安装手顺_第5张图片

启动脚本

利用脚本执行来启动服务,这样就不用每次在命令行输入一堆内容了。省事!
创建目录

cd ~
mkdir tool
cd tool

做成启动sh

vi ./stream.sh

#!/bin/sh

#This is Web-streaming server start up script.for raspi
#No warrantly.

# Config
PORT="8081"
ID="basic认证ID" # 需要修改
PW=basic认证ID密码" # 需要修改
SIZE="640x480" # 320x240也可以
F_RATE="15"
MJPG_STREAMER=/usr/local/bin/mjpg_streamer

export LD_LIBRARY_PATH=/usr/local/lib
$MJPG_STREAMER
-i "input_uvc.so -f $F_RATE -r $SIZE -d /dev/video0 -y"
-o "output_http.so -w /usr/local/www -p $PORT -c $ID:$PW" -b

执行脚本

sh /home/pi/tool/stream.sh

加入自启动中

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
#以下两行是新追加内容
# MJPG Streamer Start
sh /home/pi/tool/stream.sh

exit 0

其他

  • 删除不用的代码文件夹

rm -r ~/mjpg-streamer/

你可能感兴趣的:(树莓派上MJPG-streamer安装手顺)