FFmpeg如何以设定的间隔提取精确持续时间的时间片段?

时间:2017-03-21 21:38:02

标签: ffmpeg

我有一个视频文件,我知道如何使用ffmpeg提取片段并设置关键帧这样做。

然而,我想提取一段持续时间,例如1分钟,然后等待50秒,再分段1分钟,等待50秒,再分段1分钟等,直到视频文件结束。

我怎样才能做到这一点? 是否可以使用list.txt作为剪切输入?

1 个答案:

答案 0 :(得分:1)

让我们调用您的片段持续时间X以及一个片段结束与另一个片段的开始之间的间隔Y。都在几秒钟内。使用

ffmpeg -i in.mp4 -vf select='lt(mod(t,X+Y),X)',setpts=N/FRAME_RATE/TB -force_key_frames expr:gte(t,n_forced*X) -f segment -segment_time X out%d.ts

您可能希望为每个段添加-reset_timestamps 1的零启动时间戳。音频被忽略,如果存在则不同步。使用aselect/asetpts添加相应的音频过滤器以同步剪切音频。