强制关键帧是什么意思?
根据doc
-force_key_frames [:stream_specifier] expr:expr(输出,每个流)在指定的时间戳强制关键帧,更准确地说是在 每个指定时间后的第一帧。如果参数是前缀的 使用expr:,字符串expr被解释为表达式而且是 评估每个框架。在评估的情况下强制关键帧 是非零。
仍然我无法理解在指定的时间戳意味着强制关键帧的含义及其用途是什么?我可以看到在分割视频时使用此命令。它的用途是什么?
答案 0 :(得分:2)
如果必须剪切或分割视频,而不进行转码(重新压缩),则分段只能在关键帧处发生,因此片段的第一帧是关键帧。如果不是这种情况,则无法播放段到下一个关键帧的帧。
像x264这样的编码器通常只有在检测到场景发生了变化时才生成关键帧*。这不利于分割,因为关键帧可能以不规则的间隔生成。为了确保可以生成相同且可预测长度的段,force_key_frames选项可用于确保所需的关键帧放置。
-force_key_frames expr:gte(t,n_forced*5)
强制关键帧在t = 5,10,15秒......
GOP尺寸选项g
是确保关键帧放置的另一种方法,例如-g 50
每50帧强制一个关键帧。
*受最小和最大关键帧距离参数的限制。