如何找到FFMPEG解码的给定帧号的显示时间戳?

时间:2017-08-14 11:44:18

标签: video ffmpeg video-processing

我正在使用ffmpeg的C API进行一些视频处理。我的目标是提取给定帧号的屏幕截图。我已经理解ffmpeg有一个av_seek_frame函数来寻找给定的时间戳(用适当的视频流基本单位表示)。我假设我将不得不转到给定帧的最新I帧(使用AVSEEK_FLAG_BACKWARD标志)并继续读取,直到我遇到所需的帧。为此,我需要为av_seek_frame函数提供一个搜索时间戳。我的主要问题是给定一个帧号,我如何找到一个相关的演示时间戳来寻找?

1 个答案:

答案 0 :(得分:0)

只是为了给你一个想法,根据我的经验pkt.pts每帧增加pkt.duration次,如果帧速率不变则不变。

每帧检查pkt.durationpkt.pts增加。如果你确认增加是不变的。通过除以或乘以duration,可以轻松计算pts /帧数。

希望有所帮助。