Thanks Don, So in order to get a correct image, I must not use AVSEEK_FLAG_ANY so that av_seek_frame by default will seek to a key frame. And I should continue to read from that point and decode until I get a frame with the timestamp I want.
Do you know if all demuxers can support av_seek_frame() correctly so that as long as there's a key frame before the position I pass to the function, they all can correctly seek to that key frame? Thanks 2013/12/4 Don Moir <[email protected]> > >----- Original Message ----- > >From: YIRAN LI > >To: This list is about using libavcodec, libavformat, > libavutil,libavdevice and libavfilter. > >Sent: Sunday, December 08, 2013 9:44 PM > >Subject: [Libav-user] a question for av_seek_frame > > >Hi friends > > >Here I have a question about av_seek_frame. > > >For example if I have a video stream of time stamps 0, 1, 2, 3, 4, 5, 6, > 7, 8, 9, 10. and only frame at 0 is a key frame. > > >if I call av_seek_frame(x,x,5, AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY) > and then av_read_frame, the first frame I get will be frame 6, is this > correct? > > >then if I call av_seek_frame(x, x, 5, AVSEEK_FLAG_BACKWARD) and then > av_read_frame, then the first frame I get will be frame 1, is this correct? > > >and if both can seek to a frame and first one can get a frame quicker, in > what circumstance should I use the second one? > > >Thanks > > Non key frames require the previous key frame in order to be decoded > correctly. So if you skip past the key frame to frame 6, then the decoded > image will most likely be incorrect. > > While your first example may be quicker, it will not be correct. Best to > stay away from AVSEEK_FLAG_ANY for normal display purposes. Proper seeking > to frame 6 would require a seek to frame 1 and then read and decode to > frame 6. AVSEEK_FLAG_ANY can be useful in some cases but generally not > for normal display. > > _______________________________________________ > Libav-user mailing list > [email protected] > http://ffmpeg.org/mailman/listinfo/libav-user > >
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
