0.前言

最近想法比较多,突然想到的就记到便笺里,抽时间再实践一下
后面还有修改esp8266+oled显示(micropython)
买了树莓派的CSI摄像头,10几块钱,拿回来拍照试了下还可以,想了一下还能有什么用途
突然想起来之前的树莓派NAS+内网穿透,查了一下可以用来做摄像头持续输出视频信号

1.实验目的

使用树莓派+CSI摄像头+cpolar,实现网络摄像头的功能
用手机/PC远程访问实时查看摄像头内容

2.实验过程
  • 连接CSI摄像头并进行配置
    树莓派默认是不开启Camera的,需要在设置中启用,并重启
    查看是否识别,返回结果为1即识别
vcgencmd get_camera

使用拍照命令,查看摄像头是否正常

raspistill -o test.jpg -t 2000

test.jpg 为照片存储的名字

存储在当前运行命令的目录下

-t 参数为延迟拍照,单位为ms

内网连监控视频_视频流

  • CSI摄像头实时监控
    安装motion
apt install motion

配置移动图像监测

sudo nano /etc/default/motion
start_motion_daemon=yes  # 默认为no 修改成yes

修改motion配置

nano /etc/motion/motion.conf

webcontrol_localhost off
daemon on  #off改成on
width 640  
height 480 #可以修改
framerate 80 #帧率 0-100 80比较流畅
stream_maxrate 70 # 帧数 默认为1,70比较流畅
stream_port 8081  # 视频监听的端口,默认8081
stream_localhost off    #设为off   外网可以访问视频流  
stream_auth_method 1  # 设置为1 默认为0 0访问视频不需要密码 1需要账号密码
stream_authentication username:password  # 输入账号:密码
webcontrol_port 8080  # WEB控制台监听的端口,默认8080
webcontrol_localhost off  #设为0ff  外网可以访问控制台

重启树莓派

sudo reboot

运行motion

sudo motion

关闭motion

sudo killall -TERM motion
  • 配置cpolar内网穿透
    配置cpolar链接树莓派 刚才设置的视频流端口为8081
    直接在树莓派上运行映射本地8081,用手机访问链接
cpolar tcp 8081

内网连监控视频_视频流_02


还可以通过VNC连接树莓派,映射本地5900(vnc)

cpolar tcp 5900

内网连监控视频_内网连监控视频_03

3.实验结果

直接映射视频流端口(8081),穿透后访问延迟大概1s左右,可接受

内网连监控视频_视频流_04


映射vnc端口(5900),可以执行其他命令,通过树莓派内置浏览器访问

内网连监控视频_重启_05


如果直接在同一局域网下,访问摄像头,延迟基本在0.5s以内

4.问题解决

会遇到配置后摄像头访问灰屏,显示没有连接,但是运行设备检查,又能够检测到摄像头
运行单个拍照命令会卡死
解决办法: 不知道是什么原因导致的这个问题,尝试解决,重启树莓派;运行单个拍照命令;然后再运行motion,应该可以解决。摄像头红灯不亮即为目前无法使用。