简单记点。
树莓派摄像头按接口分有两类:csi(那种排线的)、usb。
csi 摄像头不光要把排线插到板上,还需要在 raspi-config
中 enable 才能使用。拍摄命令:
1
2
3
4
# 图片
raspistill -o cam.jpg
# 视频
raspivid -o vid.h264
usb 摄像头插上再安装软件就可以用了。
1
2
3
4
5
6
# 查看设备
lsusb
# 或
v4l2-ctl --list-formats
# 查看支持的分辨率
v4l2-ctl --list-formats-ext
软件的选择挺多:
- fswebcam:只能生成图片
- ffmpeg:功能强大的工具:FFmpeg 简介
- mjpg-streamer:可以把摄像头输出的 mjpeg 格式图像传输到网络上,搭配 OpenWrt 使用很方便
- Motion:带运动检测功能的命令行工具
- MotionEye:基于 motion 的前端
1
2
3
# 两个拍照的命令
fswebcam -r 1280x720 --no-banner /images/image1.jpg
ffmpeg -f v4l2 -video_size 1280x720 -i /dev/video0 -frames 1 out.jpg
USB 摄像头
https://blog.csdn.net/lwwl12/article/details/77978859
- 通常会有两种视频输出格式:YUV、MJPG。
- YUV 输出是无压缩的视频帧(原始 raw 数据转换后得到 YUV 格式数据),系统资源占用少(因为不用解码),不需要解码器,缺点是帧率稍慢(受限于 USB 的带宽,USB 2.0 速率是 480Mbps,USB 3.0 速率是 5Gbps)。
- MJPG 输出是将视频图像采用 JPEG 格式压缩后得到的视频帧,优点是帧率高(视频开启快,曝光快),缺点是影像有马赛克,并且需要解码器,会占用系统资源。
YUV 和 RGB
RGB 是构成多种颜色的三基色(红绿蓝),也称为加成色。主要是图像的采集和显示。YUV 是优化彩色视频信号的编码和传输,和 RGB 相比,YUV 占用的带宽少。
YUV 中 Y 表示的是亮度,是通过 RGB 输入信号确定的,方法是将 RGB 信号的特定部分叠加到一起。UV 表示的是色度,定义了颜色的两个方面的色度和饱和度,分别使用 Cr 和 Cb 表示。其中,Cr 是 GB 输入信号的红色部分和 RGB 信号的亮度的差异,而 Cb 反映的是 RGB 输入信号的蓝色部分和 RGB 的信号亮度值之间的差异。