使用树莓派摄像头拍摄延时摄影视频
最近用树莓派和自带的摄像头试了试拍摄延时摄影并合成视频,拍摄使用的是raspistill命令自带的间隔拍摄功能,合成主要使用了ffmpeg。
我这里用的是树莓派4B,其他版本的应该也没有问题。系统用的官方的Raspberry Pi OS (32-bit) Lite。
延时摄影(Time-lapse photography),又叫缩时摄影、缩时录影,是以一种将时间压缩的拍摄技术,目前也多叫作缩时录影。其拍摄的是一组照片或是视频,后期通过照片串联或是视频抽帧,把几分钟、几小时甚至是几天几年的过程压缩在一个较短的时间内以视频的方式播放。(百度百科)
首先需要让树莓派摄像头间隔的拍摄多张图片
这里先确认树莓派是否已经使能了摄像头模块,用命令sudo raspi-config
进入设置
选择第五项Enter
选择第一项Enter
选择Yes然后Enter,到这就使能完毕了。
使用这样格式的命令raspistill -t 3600000 -tl 60000 -o /home/pi/image/Img%04d.jpg
进行拍摄
这里解释一下,raspistill
是树莓派摄像头的拍照命令,-tl
后接间隔时间,表示间隔xxx毫秒(注意是毫秒!!!)拍摄一次,-t
后接结束时间,表示xxx毫秒后拍照结束,通过这两个参数就可以限定拍摄间隔和拍摄次数,-o
后接储存的文件名,这里的示例表示在路径/home/pi/image/下储存为Img%04d.jpg,%04d表示用4位的整数编号,不足的位前面补0,实际储存的文件就是Img0000.jpg、Img0001.jpg、Img0002.jpg……
raspistill命令还要很多其他参数,比如控制快门、曝光、白平衡、对比度、饱和度等等,有兴趣的可以自行了解一下,这里贴一下我使用时参考的一个博客树莓派CSI摄像头参数设置
等待拍摄完成后,把图片合成视频,我这里用的是ffmpeg,这是一个很强大的音视频处理的开源软件,功能也非常丰富,这里主要用到它将图片合成视频的功能。
(如果没有ffmpeg需要先安装,命令sudo apt-get install ffmpeg
)
使用命令ffmpeg -f image2 -i /home/pi/image/Img%04d.jpg ouput.mp4
合成视频。
其中-i
后接你图片的位置和文件名称,接着空格接输出的位置和文件名称。这个命令还可以加一些其他参数,比如ffmpeg -f image2 -r 10 -i /home/pi/image/Img%04d.jpg -vcodec libx264 ouput.mp4
使用x264编码、10帧。(注意这里-f
放在-i
之前和之后意义不同,放在之前表示输入帧率也就是1s读取多少张图片,放在之后表示输出帧率,也就是最终视频的帧率,不限制时默认与输入帧率保持一致。参考FFmpeg将多张图片合成视频)
到这里不出意外就完成了。
贴一个参考博客ffmpeg命令详解