[Libav-user] a question for av_seek_frame

YIRAN LI mrfun.china at gmail.com
Mon Dec 9 05:23:06 CET 2013


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 <donmoir at comcast.net>

>  >----- 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
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20131209/c5ce32f1/attachment.html>


More information about the Libav-user mailing list