2017-08-14 82 views
1

我正在使用ffmpeg的C API进行一些视频处理。我的目标是提取给定帧数的屏幕截图。我已经理解ffmpeg具有av_seek_frame函数来寻找给定的时间戳(以视频流的适当基本单位表示)。我假设我必须转到给定帧的最近I帧(使用AVSEEK_FLAG_BACKWARD标志)并向前读取,直到满足所需的帧。为此,我需要为av_seek_frame函数提供查找时间戳。我的主要问题是,给定一个帧号,我如何找到相关的演示时间戳寻求?如何查找FFMPEG解码给定帧号的演示时间戳?

回答

0

只是给你一个想法,根据我的经验pkt.pts每帧增加pkt.duration次,并且如果帧频恒定,它是不变的。

检查pkt.durationpkt.pts每帧增加。如果你确认增加是不变的。通过除以或乘以duration,休息很容易计算点数/帧数。

希望有所帮助。

相关问题