什么是延时摄影 Timelapse?
Timelapse(延时摄影)是一种摄影技术,通过将一系列在较长时间间隔内拍摄的照片合并成一个视频,从而展示时间经过过程中景物的变化。具体来说,摄影师会使用定时拍摄功能,每隔一定间隔(如几秒钟或几分钟)拍摄一张照片,然后将这些照片快速播放,使得时间流逝显得加快。例如,通常需要几小时甚至几天才能看到的现象,如日出日落、植物生长、城市交通流动等,通过延时摄影可以在几秒钟或几分钟内看到。
用 FFmpeg 制作延时摄影视频
最近闲逛,发现了来自 @indiantinker 的分享,让制作延时摄影视频(Timelapse)这件事,变得异常简单。
拍摄一系列照片
首先你需要有一系列的照片,无论是手机拍摄,还是相机拍摄,都无所谓,但最好尺寸相同。
这里有一个工具推荐:Timer Camera – 定时拍照应用[Android],它可以实现每10秒拍摄30张照片、每天上午 8.30 至晚上 8.30 每 10 分钟拍照一次等自定义的定时拍照功能。
不过它只能将相机保存在手机里,顺便求推荐可以通过网络保存照片的相机应用。
制作延时摄影
有了照片,就可以使用 FFmpeg 制作延时摄影视频,这里先安装 FFmpeg(下载、安装即可,跨平台工具),然后在命令提示符/终端输入:
ffmpeg -framerate 30 -pattern_type glob -i '*.jpg' -c:v libx264 -r 30 -pix_fmt yuv420p timelapse.mp4
这个命令行将当前目录下的所有 jpg 图像文件按每秒 30 帧的速率编译成一个视频文件,使用 H.264 编码,输出像素格式为 yuv420p,然后保存为 timelapse.mp4。
具体的:
-framerate 30
: 这指的是输入图像的帧率,每秒30帧。这意味着在生成的视频中,每秒会包含30个图像帧。-pattern_type glob
: 这个选项指定了输入文件名模式的类型为 glob。例如,*.jpg 会匹配所有以 .jpg 结尾的文件。-i '*.JPG'
: 这个选项指定了输入文件, *.jpg 作为文件名模式会匹配当前目录下所有的 .jpg 文件。-c:v libx264
: 这个选项指定使用 libx264 编码器来编码视频。libx264 是一种广泛使用的 H.264 视频编码器。-r 30
: 这个选项指定输出视频的帧率为每秒30帧(fps)。-pix_fmt yuv420p
: 这个选项指定像素格式为 yuv420p,这是大多数设备和播放器所支持的通用像素格式。timelapse.mp4
: 这是生成的视频文件的输出名称。timelapse.mp4 表示最终生成的视频将保存在当前目录下,文件名为 timelapse.mp4。
根据你的需要来调整 framerate
就好了。如果你想一秒钟播放一张照片,就改为 1,如果一秒钟30张就改为 30,就好了。
效果大概是这样的:
原文:https://www.appinn.com/ffmpeg-timelapse-video/