[FFmpeg-devel] matroska file hits eof on any seek

Reimar Döffinger Reimar.Doeffinger at gmx.de
Fri Feb 17 18:51:39 CET 2012

On Fri, Feb 17, 2012 at 10:34:17AM -0700, Pavel Koshevoy wrote:
> On 2/17/2012 10:23 AM, Reimar Döffinger wrote:
> >On Fri, Feb 17, 2012 at 10:20:58AM -0700, Pavel Koshevoy wrote:
> >>On 2/17/2012 2:45 AM, Don Moir wrote:
> >>>This file is probably a "bad" file.
> >>
> >>Yes, it is.  If you look at it with mkvinfo GUI you'll see that
> >>there are no keyframes there.
> >>
> >>You can fix it using yamkaRemux, make sure to pass the -fixKeyFlag
> >>option.  With this option yamkaRemux parses H.264 tracks and looks
> >>for IDR nal_init_type.  It uses that to fix the Matroska SimpleBlock
> >>keyframe flag.
> >Have you tested that? Because if that's the only thing
> >it does, it is probably the kind of application that
> >creates those broken files.
> Yes, I downloaded the source file, remuxed with yamkaRemux, and was
> able to play/seek it with my ffmpeg based player.  According to
> mkvinfo that file was made with mkvmerge v2.7.0, not yamka.

I looked at the code, as far as I can tell you just got lucky.
It looks for an IDR slice.
However having an IDR slice does not tell you anything.
If _all_ slices are IDR slices, yes.
If one is an IDR slice and some are not that tells you nothing.
Also, if intra refresh is used then it is possible that there
is not one single IDR slice even in a multi-hour video that can
be seeked to any place without any issue.

More information about the ffmpeg-devel mailing list