📅  最后修改于: 2023-12-03 14:41:10.897000             🧑  作者: Mango
在某些情况下,我们需要将视频帧率降低到每秒只有一帧。例如,当我们需要将视频转换为时间轮(time-lapse)视频时,这是非常有用的。ffmpeg是一个流行的工具,我们可以使用它来实现这个效果。
以下是将视频降低到每秒只有一帧的步骤:
ffmpeg -i input.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.20.100
Duration: 00:00:30.00, start: 0.000000, bitrate: 1684 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 1543 kb/s, 23.98 fps, 23.98 tbr, 11988 tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 131 kb/s (default)
Metadata:
handler_name : SoundHandler
从上面的输出中,我们可以看到帧率是 23.98 fps
。这是我们需要降低的帧率。记下这个帧率。(在这个例子中是 23.98
)
-r
选项来设置每秒的帧数。ffmpeg -i input.mp4 -r 1 output.mp4
注意,1
是我们希望的每秒帧数。
ffmpeg -i output.mp4
您应该会看到类似以下内容的输出:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.20.100
Duration: 00:00:30.02, start: 0.000000, bitrate: 573 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 556 kb/s, 1 fps, 1 tbr, 11988 tbn, 2 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 131 kb/s (default)
Metadata:
handler_name : SoundHandler
注意输出中的 1 fps
。这意味着我们的视频帧率已经成功地被降低到每秒只有一帧。
我们已经演示了如何使用ffmpeg将视频降到每秒只有一帧。这是制作时间轮视频等其他视觉效果的基础。ffmpeg为此提供了很多选项,您可以通过查看官方文档来了解更多细节。