我正在做一个分割进行干预的ffmpeg的write_frame功能和写入数据输出到单独的文件。 每个分区文件包含大约3秒的视频片段。
该代码执行以下操作:
1 - Get transcoded packet
2 - Check if it contains key frame data, if yes goto 3.
3 - Check the duration of current segment, if it exceed 3 seconds, goto 4
4 - Close file, and create new segment, write packet to segment file, goto-1
一般来讲,每隔段包含至少3个秒钟的视频数据,并将其与一个关键帧开始。
的问题是,所述输出视频的持续时间有很大的不同,某些含有3秒,一些含有5或6个。
我怀疑,这个问题由于ffmpeg的是如何生成的转码过程中的关键帧。 如果“距离”的两个相邻关键帧之间是6S,我得到6秒段。
这里是我的问题:
是真的,FFMPEG产生以不规则的间隔(和间隔时间关键帧可多达几秒钟(例如,6)?
我们怎样才能控制ffmpeg的关键帧生成? (我想应该有一个ffmpeg的命令对这个说法,也许-force_key_frames,但我不知道)