>>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. >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. Right and this takes some care. >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? Pretty much. You might have a problem with some mpeg files not seeking to key frame but otherwise works pretty well. You need to be careful about audio being in sync after a seek for some files as well.
_______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
