最简单:用 FFmpeg 制作延时摄影视频|Timelapse 1

什么是延时摄影 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。

具体的:

  1. -framerate 30: 这指的是输入图像的帧率,每秒30帧。这意味着在生成的视频中,每秒会包含30个图像帧。
  2. -pattern_type glob: 这个选项指定了输入文件名模式的类型为 glob。例如,*.jpg 会匹配所有以 .jpg 结尾的文件。
  3. -i '*.JPG': 这个选项指定了输入文件, *.jpg 作为文件名模式会匹配当前目录下所有的 .jpg 文件。
  4. -c:v libx264: 这个选项指定使用 libx264 编码器来编码视频。libx264 是一种广泛使用的 H.264 视频编码器。
  5. -r 30: 这个选项指定输出视频的帧率为每秒30帧(fps)。
  6. -pix_fmt yuv420p: 这个选项指定像素格式为 yuv420p,这是大多数设备和播放器所支持的通用像素格式。
  7. timelapse.mp4: 这是生成的视频文件的输出名称。timelapse.mp4 表示最终生成的视频将保存在当前目录下,文件名为 timelapse.mp4。

根据你的需要来调整 framerate 就好了。如果你想一秒钟播放一张照片,就改为 1,如果一秒钟30张就改为 30,就好了。

效果大概是这样的:


原文:https://xbcpy.com/