我知道prev_forced_t会返回上一个强制关键帧的时间。但我需要一些能够返回最后一个关键帧的时间(不是强制的,而是任何)。
此参数仅适用于强制帧:
-force_key_frames "expr:gte(t,prev_forced_t+2)"
我需要这样的东西:
-force_key_frames "expr:gte(t,${LAST_KEY_FRAME_T}+2)"
答案 0 :(得分:1)
根据documentation,force_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...]
由于潜在的命令长度,这可能是不可行的。