類似の投稿と重複しないようにしてください。
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 フレームまたは B フレームの場合、どうすればデコードできますか? - 計算値が と異なることに気付きました
inStream->codec->ticks_per_frame
。なぜですか? それらは同じであるべきではありませんか?違いはなんですか?