使用 FFMPEG 从视频中制作剪辑

使用 FFMPEG 从视频中制作剪辑

我想用 FFmpeg 每分钟剪辑一段时长为 2 秒的视频m,其中

m = video_length / 5

例如,我有一个 10 分钟长的视频。该视频片段总长度为 10 秒(5 个片段,每个片段 2 秒),由以下视频时间戳范围组成:

00:00 - 00:02
02:00 - 02:02
04:00 - 04:02
06:00 - 06:02
08:00 - 08:02

这将产生一种视频预告片。

我知道我可以通过片段实现这一点,但却无法弄清楚整个过程。

答案1

您可以使用选择过滤器一次性完成此操作

ffmpeg -i in.mp4
       -vf select='lt(mod(t,120),2)',setpts=N/FRAME_RATE/TB
       -af aselect='lt(mod(t,120),2)',asetpts=N/SR/TB
       out.mp4

答案2

我知道一种方法,你可以可能使用。不过,这有点混乱。

使用以下命令提取剪辑:

ffmpeg -i -ss <time to start> -t <duration> <output clip filename>

你要做的是提取具有以下格式的剪辑,其中-ss是剪辑的开始,-t是剪辑的持续时间。提取完这些后,你可以将它们连接在一起:

ffmpeg -i concat:"clip_file1|clip_file2|clip_file3" -c copy <your output file>

请注意,这种连接形式并不适用于所有视频格式,您可能需要添加一些其他参数,例如-bsf:a aac_adtstoascMP4 文件。但这应该可以让您获得所需的视频。

相关内容