树莓派usb摄像头外网监控

avatar
作者
筋斗云
阅读量:5

用的usb的摄像头具体什么型号不清楚,有usb插头的就行,树莓派3B、4B、5都可以,使用motion或mjpg-streamer打开摄像头(这两个只是一个工具,会用就行,跟代码能力无关,我只展示motion的操作,效果的话应该是mjpg-streamer更好)

首先实现本地局域网访问摄像头

首先打开树莓派菜单开启摄像头

sudo raspi-config 

查看摄像头是否成功启动

ls -al /dev/ | grep video 

如果看到虚拟设备/dev下有video0就是成功了
安装motion

sudo apt-get install motion 

配置motion daemmon守护进程

sudo nano /etc/default/motion 


改为start_motion_daemon=yes     ,nano为ctrl O保存,ctrl X退出

修改motion的配置文件:

sudo vim /etc/motion/motion.conf

daemon off改为daemon on motion 后台运行

strean_port 8081默认,可自行更改视频流监控

stream_localhost on改成off,允许通过非 localhost 来查看视频
rotate 旋转画面,如果需要90°、180°旋转,可以在这里配置。
width 和 height 修改画面分辨率(默认为 320*240 像素),这里可以修改,如 1024 和 768(当然如果你的分辨率太高画面会卡)
framerate 捕获的帧率,如修改为 30(太高或太低都会影响画面流畅度)
stream_maxrate 修改流的帧率,如果需要实时查看的话,建议修改这个的值,因为这个默认值是 1,会导致画面非常卡顿,如修改为 30。

启动服务

sudo service motion start  

运行

sudo motion

11a7e7ac95084b0984c2e6adfe5234fe.png                        这是同一个局域网下访问实时视频,ip:你自己设置的端口号

 

 

启动遇到报错就看https://raspberrypi.stackexchange.com/questions/78715/motion-daemon-var-log-motion-motion-log-permission-denied(应该是解决一个打开某文件的问题,没有的话自己mkdir一下就可以了)
关闭motion

sudo killall -w motion 


使用 Ngrok 实现远程访问:

在树莓派上运行 Motion 服务:
前往 Ngrok 官网(https://ngrok.com/),注册并登录你的帐户,我用的是谷歌账号直接注册就行,其他注册方式大家可以自己试


下载适用于你版本的树莓派的 Ngrok 客户端传入树莓派解压即可,会生成一个可执行文件

5e4ae3bb97ac430f87d5f681fe32a5b4.png

16fb7fcf740c42c38437ab0c54ffae61.png
提前运行motion,记住你的视频端口strean_port,这里我修改成了1314
进入ngrok控制台,复制Authtoken

ffd875e1e0e345588841c015bc6d42a6.png
 

./ngrok authtoken your_authtoken

然后启动ngrok,我这里启动的是1314端口,大家可以自己设置

./ngrok http 1314 


运行成功之后ngrok创建一个隧道,可以使用URL访问motion服务

720fbd99d8e04334a1bd63abde1addbc.png示例中我的公网地址是 https://a3ea-58-52-161-133.ngrok-free.app,下面是我使用手机流量查看实时监控(当然,免费的很卡~):

4f42bfd41d9c4b8bb37c6f5b913a1456.jpeg

 

 

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!