请,这不是类似帖子的重复!
我想找到并解码第 N 帧,例如第 7 帧。
据我了解,使用time_base
我可以计算每帧有多少滴答声,然后将其乘以 7,我们将得到第 7 帧的位置。计算我所做的刻度
AVStream inStream = getStreamFromAVFormatContext();
int fps = inStream->r_frame_rate.num;
AVRational timeBase = inStream->time_base;
int ticks_per_frame = (1/fps) / timeBase;
int _7thFramePos = ticks_per_frame * 7;
- 我是否正确计算了第 7 帧的位置?如果我这样做了,那么我就去那个框架
av_seek_frame(pFormatCtx, -1, _7thFramePos, AVSEEK_FLAG_ANY)
,对吧?如果第 7 帧是 P-Frame 或 B-Frame 会发生什么,我如何解码它? - 我注意到计算的值与 不同
inStream->codec->ticks_per_frame
,为什么?他们不应该是一样的吗?有什么不同?