[Libav-user] a question for av_seek_frame
Safi ud Din Khan
safiuddinkhan at gmail.com
Mon Dec 9 07:24:15 CET 2013
refer to this if u wanna understand what really keyframe is
also do remember it was also quiet confusing for me av_seek_frame seek
stream by DTS (Decode Time Stamp) and not by PTS (Presentation Time
Stamp) so when you seek you are'nt going get to the accurate position of
On 12/09/2013 09:29 AM, YIRAN LI wrote:
> And I have another question: If an AVPacket object has AV_PKT_FLAG_KEY
> bit set in flags, does that mean this packet when passed into
> avcodec_decode_video2 can always get a complete frame (I mean by
> calling avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished,
> &packet) the 3rd argument set to true)?
> 2013/12/9 YIRAN LI <mrfun.china at gmail.com <mailto:mrfun.china at gmail.com>>
> 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?
> 2013/12/4 Don Moir <donmoir at comcast.net <mailto: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?
> 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 <mailto:Libav-user at ffmpeg.org>
> Libav-user mailing list
> Libav-user at ffmpeg.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libav-user