我试图了解如何在用 p 帧(例如 H.264)编码的视频中寻找——现在我只知道如何在用每帧都是关键帧的编解码器编码的视频中寻找(例如 MJPEG)。
给定一个时间戳,最终它应该播放该时间戳的帧。但现在,我只是想在时间戳附近播放关键帧。所以,首先——
ret = av_seek_frame(pFormatCtx, videoStream, avTime, 0);
avcodec_flush_buffers(pCodecCtx);
然后是一些中间代码,包括av_read_frame
. 然后 -
ret = avcodec_decode_video2(pCodecCtx, captureFrame, &gotPicture, &packet);
观察: