[FFmpeg-trac] #4427(ffprobe:new): ffprobe read_intervals not correctly working with avi
FFmpeg
trac at avcodec.org
Sat Apr 4 13:42:07 CEST 2015
#4427: ffprobe read_intervals not correctly working with avi
-------------------------------------+-------------------------------------
Reporter: martinr92 | Type: defect
Status: new | Priority: normal
Component: ffprobe | Version:
Keywords: | unspecified
read_intervals | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
I'd like to receive the key frames of a avi video, that are in a range of
2-5 seconds.
For this I'm using ffprobe
{{{
ffprobe -print_format json -select_streams v -read_intervals 00:00:10%+2
-show_frames test.avi
}}}
It's a 25 fps video, so I should receive 50 frames + maybe some frames
before second 10 (seeking to the key-frame). In this case, it starts with
frame 195 (7,8 seconds) which is ok.
{{{
{
"frames": [
{
"media_type": "video",
"key_frame": 1,
"pkt_dts": 195,
"pkt_dts_time": "7.800000",
"best_effort_timestamp": 195,
"best_effort_timestamp_time": "7.800000",
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "656024",
"pkt_size": "28089",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "I",
"coded_picture_number": 0,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
},
{
"media_type": "video",
"key_frame": 0,
"pkt_dts": 196,
"pkt_dts_time": "7.840000",
"best_effort_timestamp": 196,
"best_effort_timestamp_time": "7.840000",
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "697704",
"pkt_size": "2325",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "B",
"coded_picture_number": 3,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
},
{
"media_type": "video",
"key_frame": 0,
"pkt_dts": 197,
"pkt_dts_time": "7.880000",
"best_effort_timestamp": 197,
"best_effort_timestamp_time": "7.880000",
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "694028",
"pkt_size": "2500",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "B",
"coded_picture_number": 2,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
}, [....]
}}}
Not ok for me is the end, because it should stop after frame 300 (second
12). In this case, it's running to frame 791 (31 seconds), End of video.
{{{
{
"media_type": "video",
"key_frame": 0,
"pkt_dts": 790,
"pkt_dts_time": "31.600000",
"best_effort_timestamp": 790,
"best_effort_timestamp_time": "31.600000",
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "3552780",
"pkt_size": "2162",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "B",
"coded_picture_number": 597,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
},
{
"media_type": "video",
"key_frame": 0,
"pkt_dts": 791,
"pkt_dts_time": "31.640000",
"best_effort_timestamp": 791,
"best_effort_timestamp_time": "31.640000",
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "3549024",
"pkt_size": "2580",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "B",
"coded_picture_number": 596,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
},
{
"media_type": "video",
"key_frame": 0,
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "3540824",
"pkt_size": "7608",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "P",
"coded_picture_number": 595,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
},
{
"media_type": "video",
"key_frame": 0,
"pkt_duration": 1,
"pkt_duration_time": "0.040000",
"pkt_pos": "3556118",
"pkt_size": "7294",
"width": 720,
"height": 576,
"pix_fmt": "yuv420p",
"sample_aspect_ratio": "64:45",
"pict_type": "P",
"coded_picture_number": 598,
"display_picture_number": 0,
"interlaced_frame": 0,
"top_field_first": 0,
"repeat_pict": 0
}
}}}
This is running on my MacBook with OS 10.10.2.
See also attached test video.
At the end, some traces:
{{{
ffmpeg -v 9 -loglevel 99 -i test.avi
ffmpeg version 2.6.1 Copyright (c) 2000-2015 the FFmpeg developers
built with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --prefix=/Volumes/Ramdisk/sw --enable-gpl --enable-
pthreads --enable-version3 --enable-libspeex --enable-libvpx --disable-
decoder=libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis
--enable-libx264 --enable-avfilter --enable-libopencore_amrwb --enable-
libopencore_amrnb --enable-filters --enable-libgsm --enable-libvidstab
--enable-libx265 --disable-doc --arch=x86_64 --enable-runtime-cpudetect
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument '99'.
Reading option '-i' ... matched as input file with argument 'test.avi'.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input file test.avi.
Successfully parsed a group of options.
Opening an input file: test.avi.
[avi @ 0x7f7f88807800] Format avi probed with size=2048 and score=100
[avi @ 0x7f7f88412fe0] use odml:1
[avi @ 0x7f7f88807800] Before avformat_find_stream_info() pos: 10960 bytes
read:164864 seeks:4
[h264 @ 0x7f7f8880fe00] no picture
[avi @ 0x7f7f88807800] All info found
rfps: 24.750000 0.013325
Last message repeated 1 times
rfps: 24.833333 0.005922
Last message repeated 1 times
rfps: 24.916667 0.001481
Last message repeated 1 times
rfps: 25.000000 0.000000
rfps: 25.083333 0.001481
Last message repeated 1 times
rfps: 25.166667 0.005922
Last message repeated 1 times
rfps: 25.250000 0.013325
Last message repeated 1 times
rfps: 50.000000 0.000000
[avi @ 0x7f7f88807800] After avformat_find_stream_info() pos: 210341 bytes
read:361472 seeks:4 frames:108
Input #0, avi, from 'test.avi':
Metadata:
title : Fun Size - S��es oder Saures
encoder : Lavf56.25.101
encoded_by : www.onlinetvrecorder.com
Duration: 00:00:31.68, start: 0.000000, bitrate: 908 kb/s
Stream #0:0, 41, 1/25: Video: h264 (High) (H264 / 0x34363248),
yuv420p(tv, bt470bg, left), 720x576 [SAR 64:45 DAR 16:9], 1/50, 701 kb/s,
25 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0:1, 67, 3/125: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz,
stereo, s16p, 192 kb/s
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 0x7f7f88412f20] Statistics: 361472 bytes read, 4 seeks
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/4427>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list