CSI摄像头

CSI摄像头rpicam套件拍照连续拍照拍视频rpicam-still帮助文档motion对于树莓派摄像机简单配置设定开机自动打开motionUSB摄像头fswebcamfswebcam手册页语法配置配置文件全局选项捕获选项输出选项信号已知BUGS

rpicam套件

gphoto2不能识别CSI摄像头,树莓派提供rpicam套件进行拍照。

拍照

rpicam-still --datetime -n

连续拍照

如果使用 --datetime 选项,会自动按照日期命名照片,但是无法指定文件目录。可以使用 -o 选项指定路径。创建文件 /home/pi/bin/paizhao.sh ,并赋予可执行权限:

此方法会遇到一个问题,需要在生成照片之前确定目录是存在的。创建文件 /home/pi/bin/chuangjianmulu.sh ,并赋予可执行权限:

使用 crontab -e 编辑crontab,加入以下两行:

第一行,每天凌晨零点创建以当前日期为名称的目录;

第二行,每分钟拍一张照片存入以当前日期为名称的目录中。

拍视频

rpicam-vid -t 100s -o a100s.1296.972.h264 -n --width=1296 --height=972

rpicam-still帮助文档

$ rpicam-still --help Valid options are:

motion

motion是一个用于监控来自多种类型摄像机的视频信号的程序,可根据其配置方式在检测到移动时执行操作。

功能如下:

适用于以下类型的设备:

对于树莓派摄像机

【以下内容来自Motion官方文档】

在基于Debian发行版 bullseye(或更高版本)的Raspbian版本中,Raspbian允许通过名为 libcamera 的应用程序访问Pi相机。

libcamera 作为 v4l2 设备提供对相机的访问,但此接口仅在使用特殊应用程序时可用。用户必须使用命令 libcamerify motion 运行 Motion,然后在 Motion配置文件中指定 /dev/video0

对于 bullseye 之前的Raspbian版本,PI相机可以设置为两种不同的方式。如果使用apt软件包安装Motion(例如 apt-get install motion ),则必须使用 bcm2835-v4l2 模块设置摄像头,该模块为摄像头创建一个v4l2设备。用户需要使用命令 sudo modprobe bcm2835-v4l2 安装此模块。这将把相机设置为普通的v4l2设备,可以通过标准的 /dev/videoX 设备访问。如果Motion是从源代码构建的,或者是通过项目发布页面上的deb包安装的,那么另一个选项是使用 mmalcam_name 参数或使用bcm2835-v4l2模块设置摄像头。当通过apt安装Motion时,mmalcam选项不可用。已经注意到,通过启用传统相机堆栈,这种访问PI相机的历史方法可能在较新版本中可用,但尚不清楚这种方法将被允许多久。

简单配置

Motion的配置文件位于 /etc/motion 目录中,需要关注以下几个参数:

设定开机自动打开motion

试了几种方法都不行,最后使用crontab解决:

USB摄像头

rpicam仅能读取CSI摄像头。

motion可以读取CSI摄像头和USB摄像头,需要更改motion.conf文件,在文件尾部有设备列表,形如以下:

然后创建 /etc/motion/camera4-0.conf/etc/motion/camera4-1.conf ,内容大致如下:

但motion默认仅记录发生变化的场景,对于变化不大的情况并不会进行录像和拍照,并不大适合做延时摄影。

fswebcam

fswebcam是一款适用于*nix的小型简单网络摄像头应用程序。它可以从许多不同的来源捕获图像,并对捕获的图像执行简单的操作。图像可以保存为一个或多个PNG或JPEG文件。

可以使用文件名“-”将PNG或JPEG图像发送到stdio。输出文件名由strftime格式化。

一个示例:

fswebcam手册页

语法

fswebcam [<options>] <filename> [[<options>] <filename> ...]

配置

配置文件

配置文件使用没有“--”前缀的长版本选项。注释在行的开头以#符号开头。

全局选项
捕获选项
输出选项

这些选项按它们在命令行上的显示顺序执行,仅影响稍后在命令行中输出的图像。例如:

将创建两个图像,“output1.jpeg”包含捕获图像的全分辨率副本,“output 2.jpeg”包括相同的捕获图像,但缩放到一半大小。

信号

SIGHUP这会导致fswebcam重新加载其配置。

SIGUSR1 使fswebcam立即捕获图像,而无需在循环模式中等待计时器。

已知BUGS

字母之间的间距可能不正确。这是GD库的一个问题。