代码编织梦想

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
    

    在这里插入图片描述
    还可以通过VNC连接树莓派,映射本地5900(vnc)

cpolar tcp 5900

在这里插入图片描述

3.实验结果

直接映射视频流端口(8081),穿透后访问延迟大概1s左右,可接受
在这里插入图片描述
映射vnc端口(5900),可以执行其他命令,通过树莓派内置浏览器访问
在这里插入图片描述
如果直接在同一局域网下,访问摄像头,延迟基本在0.5s以内

4.问题解决

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/m0_46622606/article/details/109038225