Opened 5 years ago
Last modified 5 years ago
#8392 reopened defect
ffprobe skip_frame nokey on wmv shows improper results
Reported by: | emmdev | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | unspecified | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
How to reproduce:
ffprobe -select_streams v -show_entries frame=key_frame,pkt_dts_time,best_effort_timestamp_time,pict_type -sexagesimal inputfile.wmv vs ffprobe -select_streams v -skip_frame nokey -show_entries frame=key_frame,pkt_dts_time,best_effort_timestamp_time,pict_type -sexagesimal inputfile.wmv
Result for all frames (excerpt):
[FRAME] key_frame=0 pkt_dts_time=0:00:09.976000 best_effort_timestamp_time=0:00:09.976000 pict_type=P [/FRAME] [FRAME] key_frame=0 pkt_dts_time=0:00:10.009000 best_effort_timestamp_time=0:00:10.009000 pict_type=P [/FRAME] [FRAME] key_frame=1 pkt_dts_time=0:00:10.043000 best_effort_timestamp_time=0:00:10.043000 pict_type=I [/FRAME] [FRAME] key_frame=0 pkt_dts_time=0:00:10.076000 best_effort_timestamp_time=0:00:10.076000 pict_type=P [/FRAME]
Result for just keyframes / skip_frame nokey (excerpt):
[FRAME] key_frame=1 pkt_dts_time=0:00:10.009000 best_effort_timestamp_time=0:00:10.009000 pict_type=I [/FRAME] [FRAME] key_frame=1 pkt_dts_time=0:00:20.019000 best_effort_timestamp_time=0:00:20.019000 pict_type=I [/FRAME]
I've only supplied the corresponding "all frames" entries for the first entry of the "just keyframes" output, to keep it shorter.
It shows "all frames" listing the keyframe at 0:00:10.043000 when skip_frame nokey lists it at 0:00:10.009000, a timestamp which corresponds to a P frame.
On mp4/avc it's a mixed bag. When using pkt_dts_time, it behaves the same as above, but when using pkt_pts_time it works fine, both outputs (all & keyframes) show the same matching timestamps.
The file in question is really large, so I can't upload it, wmv/wvc1, has no pkt_pts_time (i.e. it's N/A), which is why I used pkt_dts_time and best_effort_timestamp_time (which in this case seems to be one and the same).
Change History (2)
comment:1 by , 5 years ago
Resolution: | → needs_more_info |
---|---|
Status: | new → closed |
comment:2 by , 5 years ago
Resolution: | needs_more_info |
---|---|
Status: | closed → reopened |
OK, I found some sample files on mplayerhq, they exhibit the same issue.
http://samples.mplayerhq.hu/V-codecs/WVC1/
file: FlightSimX_720p60_51_15Mbps.wmv
keys only ex: key_frame=1 pkt_dts_time=0:00:05.972000 pict_type=I
all frames equiv: key_frame=0 pkt_dts_time=0:00:05.972000 pict_type=P
file: Test_1440x576_WVC1_6Mbps.wmv
keys only ex: key_frame=1 pkt_dts_time=0:00:05.000000 pict_type=I
all frames equiv: key_frame=0 pkt_dts_time=0:00:05.000000 pict_type=P
pkt_pts_time is N/A for this type of file.
http://samples.mplayerhq.hu/V-codecs/AVC1/
file: NeroRecode_STD_AVC_(ateme1022).mp4
keys only ex: missing
all frames equiv: key_frame=1 pkt_dts_time=0:00:00.040000 pict_type=I
keys only ex: key_frame=1 pkt_dts_time=0:00:02.960000 pict_type=I
all frames equiv: key_frame=0 pkt_dts_time=0:00:02.960000 pict_type=P
pkt_dts_time doesn't match while pkt_pts_time is listed properly for this file.
Please reopen this ticket if you can point us to an input file that allows to reproduce.