树莓派 4b 支持通过 USB 或者摄像头 CSI 接口连接摄像头,因此可以使用树莓派 4b 作为监控
基于安装了 Ubuntu Server 22.04 LTS 的树莓派 4b 进行测试
带有红外补光灯的摄像头功率大概5-7w左右,因此使用树莓派 4b 连接时需要有 5V3A 的电源,否则当开启摄像头后树莓派会不断重启
接入摄像头
连接摄像头
如图所示,通过排线连接摄像头和树莓派(图片来自 Getting started with the Camera Module)
开启摄像头
开启摄像头需要先安装 raspi-config
软件
apt-get install -y raspi-config
然后运行 raspi-config
,选择用户 pi
进行配置;
接着选择第三个接口配置
然后选择第一个,配置摄像头,选择开启即可;开启完成后,需要关闭树莓派,连接摄像头并重新开机
检查摄像头信息
- 检查连接状态
重启后检查设备连接状态:
vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0
返回信息提示检查到了一个摄像头并且支持该摄像头
- 查看摄像头信息
查看摄像头信息需要使用 v4l-utils
apt-get install -y v4l-utils
通过 v4l-utils
列出设备
v4l2-ctl --list-devices
bcm2835-codec-decode (platform:bcm2835-codec):
/dev/video10
/dev/video11
/dev/video12
/dev/video18
/dev/video31
/dev/media1
bcm2835-isp (platform:bcm2835-isp):
/dev/video13
/dev/video14
/dev/video15
/dev/video16
/dev/video20
/dev/video21
/dev/video22
/dev/video23
/dev/media0
/dev/media2
mmal service 16.1 (platform:bcm2835-v4l2-0):
/dev/video0
其中的 /dev/video0
就是通过排线连接的摄像头
使用摄像头
因为 raspstill
在 Ubuntu 下并不能直接安装,通过源码编译又需要很多的依赖,并且因为树莓派的性能限制,会比较复杂;因此通过 ffmpeg 来测试
安装 ffmpeg
apt-get install -y ffmpeg
检查
如果树莓派有连接显示器,可以通过 ffplay
进行查看;如果没有连接,则可以通过 ffmpeg
拍照查看
- 拍照
ffmpeg -i /dev/video0 -frames:v 1 -f image2 output.jpg
拍照之后可以通过 ftp 或者 scp 等方式将文件复制到本地;也可以直接通过 python 启动一个 HTTP 服务:python3 -m http.server
,然后访问 8000 端口下载文件
- 录制视频
录制10s的视频,并输出为 mp4 格式
ffmpeg -f v4l2 -r 30 -s 640x480 -i /dev/video0 -c:v libx264 -preset ultrafast -tune zerolatency -t 10 output.mp4
- 查看视频
这里需要有显示器连接,否则无法预览
ffplay /dev/video0