#3083 closed defect (fixed)
Suspicion that valid random access point is not marked as keyframe in AVCHD samples from Panasonic Lumix GH1
Reported by: | rmk | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | h264 |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
AVCHD files from a camera (Panasonic Lumix GH1) demux and
decode with libavformat/libavcodec detecting no other keyframe but the
first (both, the first video packet and video frame are marked as
keyframe), which is not what I would have expected for those clips as
the GOP structure of files produced by this camera is known to be
different.
I observed the following things when looking at the 720p sample:
- there are no recovery point SEIs or IDRs after the first frame
- before every I-frame/slice there is an SPS
- seeking in these files works fine in FCPX import dialog, so I guess they do not decode the entire file on every seek (they do however maybe use auxiliary AVCHD files to find these random access points)
- the stream decodes fine if one takes just the packets starting from a packet that contains an I-slice
Attachments (1)
Change History (7)
by , 11 years ago
Attachment: | 720p_copy.ts added |
---|
comment:1 by , 11 years ago
Keywords: | h264 added |
---|---|
Version: | unspecified → git-master |
comment:3 by , 11 years ago
Reproduced by developer: | set |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:4 by , 11 years ago
Great, thanks for the quick fix!
Shall I open a new ticket for the other (1080i) sample from the camera? There it still reports only a keyframe at the start although I can also decode the frame (and the following ones) without errors if I cut the file at any point starting at the packet containing an I-slize.
Uploaded a stream copy of the first 59 frames:
One IDR frame, 25 P frames, one I frame, 25 P frames, one I frame, six P frames.
Iiuc, FFmpeg sees recovery points at (the first frame), the 28th frame and the 54th frame, ie it does not seek to the I frames, but to the P frames immediately following the I frames (except with -flags2 showall)