树莓派Raspberry Pi 4b+实现摄像头拍照和实时监控

硬件设备

1、树莓派4b+
2、树莓派自带摄像头模块(CSI接口)(分辨率2592*1944)

摄像头测试

sudo vcgencmd get_camera
#输出 supported=1 detected=1 说明发现摄像头设备一个支持一个
# raspi自带的拍照和视频测试
sudo raspistill -o image.jpg
sudo raspivid -o video.h246 -t 1000

方案A motion

1、安装 motion包

sudo apt-get install motion

2、修改etc/default/motion 文件让motion成为守护进程,后台运行

sudo nano /etc/default/motion

改成

start_motion_daemon=yes

3、修改/etc/motion/motion.conf配置文件

sudo nano /etc/motion/motion.conf

rotate 180 #画面旋转 0 90 180 270 度
width 1920 # 宽度
height 1080 # 高度
framerate 60 #画面帧率 2-100
stream_port 8081 #视频流端口
stream_maxrate 70 #视频流速率 >1
stream_localhost off #仅限于本地端口访问
webcontrol_port 8080 #网络TCP/IP端口
webcontrol_localhost off #限制网络TCP/IP端口控制
target_dir /var/lib/motion # 图像和视频的存储位置
movie_max_time 60 # 视频的录制时长,60s
movie_codec mkv # 视频格式 mkv
movie_filename %t-%v-%Y%m%d%H%M%S #视频命名
其他参数见说明

4、重启树莓派后开启motion进程

sudo reboot
#等待数分钟重新连接树莓派
sudo motion

5、查看和关闭实时监控
在树莓派连接的同一内网(WiFi)下,电脑浏览器或者手机端输入 树莓派IP:8081
比如 http://192.168.1.103:8081/ 即可访问
关闭motio后台进程

# top 可以查看motion的进程ID, kill -9 PID 
#或者
sudo killall -TERM motion
#或者
service motion stop

效果展示

Rapi_motion

方案B mjpg-streamer

Github地址

https://github.com/jacksonliam/mjpg-streamer

mjpg-stream

安装需求包和mjpg-streamer

sudo apt-get install cmake libjpeg8-dev
# gcc g++编译器 Raspberry Pi的Debian系统自带 
# 更新系统版本 sudo apt-get update
# 安装git 来获取mjpg-streamer包
sudo apt-get install git
sudo git clone https://github.com/jacksonliam/mjpg-streamer.git

编译mjpg-streamer

cd mjpg-streamer/mjpg-streamer-experimental
sudo make all
sudo make install

开启实时摄像头

sudo mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so -x 1920 -y 1080 -fps 30 -ex night -rot 180 -p 8080"
# -p指定端口 -fps 帧率 -rot 旋转 -x/y 分辨率

更多设置参考Github链接input_raspicam
同样在电脑端浏览器或手机端输入:

http://树莓派IP:8080/?action=stream

显示效果

Raspi_mjpg-streamer

后台运行

直接加 &,会显示出进程PID,ctr+c关闭就可以后台一直运行

sudo mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so -x 1920 -y 1080 -fps 30 -ex night -rot 180 -p 8080" &

关闭的话,top找出mjpg-streamer的进程PID,sudo kill -9 PID就好了。

ubuntu 20.04 系统下运行

如果树莓派装的是ubuntu 系统而不是raspbian系统,mjpg-streamer编译的时候是不会编译得到 input_raspicam.so 的动态链接库,这时候可以采用ubuntu系统下的摄像头开启方法(要确认摄像头正常工作)。

cd mjpg-streamer/mjpg-streamer-experimental
sudo ./start.sh # 简单粗暴 默认分辨率640*480

或者采用通用的 input_uvc.so
This plugin provides JPEG data from V4L/V4L2 compatible webcams.

sudo mjpg_streamer -o "output_http.so -w ./www -p 8080" -i "input_uvc.so -r 1920x1080 -f 60 -rot 0 -ex 100 -br 49 -sa 50  "

端口8080查看实时画面

http://树莓派IP:8080/?action=stream
或者打开地址,里面可选控制插件
http://树莓派IP:8080

评价

同样1080p 30fps的情况下,mjpg-stream的实时视频比motion流畅许多。。。

  • 15
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值