是否可以使用FFMPEG在最后一个关键帧的时间后2秒强制关键帧?

时间:2015-10-12 13:13:11

标签: ffmpeg

我知道prev_forced_t会返回上一个强制关键帧的时间。但我需要一些能够返回最后一个关键帧的时间(不是强制的,而是任何)。

此参数仅适用于强制帧:
-force_key_frames "expr:gte(t,prev_forced_t+2)"

我需要这样的东西:
-force_key_frames "expr:gte(t,${LAST_KEY_FRAME_T}+2)"

1 个答案:

答案 0 :(得分:1)

根据documentationforce_key_frames expr不会公开最后一个非强制关键帧的时间。

您可以修改ffmpeg源代码或使用lib来实现目标,也可以尝试使用ffprobe两次传递来获取关键帧时间戳信息:

ffprobe -select_streams v -show_entries frame=key_frame,pkt_pts_time <input> | grep key_frame=1 -A1

您可以使用-force_key_frames[:stream_specifier] time[,time...]

在特定时间强制关键帧

由于潜在的命令长度,这可能是不可行的。