使用可变帧率编码视频
Encoding Video With Variable Framerate
我在文件夹中有一个带时间戳的图像列表。所有图像都命名为 %12d_us.jpeg (即 000000020038_us.jpeg 等)。这些图像是以可变帧率记录的,因此虽然一个视频可能以 40 fps 的速度拍摄,但其他视频的 fps 可能已降至 30 甚至 20 fps。然而,我确实有这些图像中每一个的时间戳编码在他们的名字中。有没有一种方法可以对这些图像进行编码,使它们类似于从中捕获它们的原始视频流(即动态帧率)。
如果有人能对此提供帮助,我将不胜感激。我应该补充一点,我是 运行 windows,所以我不能使用 glob 模式,因为它不是我操作系统 POSIX.
的一部分
您可以使用 FFmpeg 的连接功能:http://ffmpeg.org/ffmpeg-formats.html#concat-1
ffmpeg -i duration.txt -c:a copy -vf fps=30 output.mp4
您必须根据您的文件名生成 duration.txt - 例如:
ffconcat version 1.0
file 000000020038_us.jpeg
duration 2
file 000000050039_us.jpeg
duration 5
file 000000010040_us.jpeg
duration 1
我在文件夹中有一个带时间戳的图像列表。所有图像都命名为 %12d_us.jpeg (即 000000020038_us.jpeg 等)。这些图像是以可变帧率记录的,因此虽然一个视频可能以 40 fps 的速度拍摄,但其他视频的 fps 可能已降至 30 甚至 20 fps。然而,我确实有这些图像中每一个的时间戳编码在他们的名字中。有没有一种方法可以对这些图像进行编码,使它们类似于从中捕获它们的原始视频流(即动态帧率)。
如果有人能对此提供帮助,我将不胜感激。我应该补充一点,我是 运行 windows,所以我不能使用 glob 模式,因为它不是我操作系统 POSIX.
的一部分您可以使用 FFmpeg 的连接功能:http://ffmpeg.org/ffmpeg-formats.html#concat-1
ffmpeg -i duration.txt -c:a copy -vf fps=30 output.mp4
您必须根据您的文件名生成 duration.txt - 例如:
ffconcat version 1.0
file 000000020038_us.jpeg
duration 2
file 000000050039_us.jpeg
duration 5
file 000000010040_us.jpeg
duration 1