> Why are two keyframes at time 0 returned? I notice that they are
> about 50 bytes apart. What part of the flv file is represented by the
> byte range 547-608? If it is video, why does it have a duration of
> zero? Is it an informational packet or something?
For what I know of the H.264 format, the first tag contains
informations about the stream. I'm using this tag to identify the
video stream resolution (W x H).
It's still a part of the video stream, and the video decoder needs it.
I think there's a limitation in the FLV format itself, because there
aren't many different types of frames (keyframes, interframes,
disposable interframes, generated keyframes, command frames).
FLVmeta just indexes every keyframe (first type) it meets, assuming
they really are keyframes (video frames to which the flash player can
seek).
However, the muxer (I often use ffmpeg to generate FLV files
containing H.264/AAC streams) will write the first frame as a keyframe
without a duration, and the next video frame as a keyframe too,
correctly this time, therefore creating two keyframes at timestamp 0.
I'm not sure it's very important, the flash client will probably
choose the first one it meets in case it's asked to seek at zero.
Regards,
Marc