[FFmpeg-user] Why Does ffprobe Report an Incorrect Number of Frames?

John G skeeve99 at yahoo.com.au
Thu May 8 14:14:00 CEST 2014



> > IF! I convert the video into a basic MPEG format though:-
> >
> > c:\> ffmpeg -i sample.avi -c:v mpeg4 -q:v 2.0     new.mpg
> >
> > ffmpeg version N-62509-g97751e1 Copyright (c) 2000-2014 the FFmpeg developers
> >   built on Apr 17 2014 22:01:31 with gcc 4.8.2 (GCC)
> >   configuration: --enable-gpl --enable-version3 --disable-w32threads
> >                  --enable-avisynth --enable-bzlib --enable-fontconfig
> >                  --enable-frei0r --enable-gnutls --enable-iconv
> >                  --enable-libass --enable-libbluray --enable-libcaca
> >                  --enable-libfreetype --enable-libgsm --enable-libilbc
> >                  --enable-libmodplug --enable-libmp3lame
> >                  --enable-libopencore-amrnb --enable-libopencore-amrwb
> >                  --enable-libopenjpeg --enable-libopus --enable-librtmp
> >                  --enable-libschroedinger --enable-libsoxr --enable-libspeex
> >                  --enable-libtheora --enable-libtwolame --enable-libvidstab
> >                  --enable-libvo-aacenc --enable-libvo-amrwbenc
> >                  --enable-libvorbis --enable-libvpx --enable-libwavpack
> >                  --enable-libx264 --enable-libx265 --enable-libxavs
> >                  --enable-libxvid --enable-decklink --enable-zlib
> >   libavutil      52. 77.100 / 52. 77.100
> >   libavcodec     55. 58.103 / 55. 58.103
> >   libavformat    55. 37.100 / 55. 37.100
> >   libavdevice    55. 13.100 / 55. 13.100
> >   libavfilter     4.  4.100 /  4.  4.100
> >   libswscale      2.  6.100 /  2.  6.100
> >   libswresample   0. 18.100 /  0. 18.100
> >   libpostproc    52.  3.100 / 52.  3.100
> > Input #0, avi, from 'sample.avi':
> >   Metadata:
> >     encoder         : Lavf55.37.100
> >   Duration: 00:00:35.00, start: 0.000000, bitrate: 1707 kb/s
> >     Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 639x361, 1668 kb/s, 200 fps, 200 tbr, 200 tbn, 200 tbc
> >     Metadata:
> >       title           : ~temp.avi Video #1
> > [mpeg @ 02caca20] VBV buffer size not set, using default size of 130KB
> > If you want the mpeg file to be compliant to some specification
> > Like DVD, VCD or others, make sure you set the correct buffer size
> > Output #0, mpeg, to 'new.mpg':
> >   Metadata:
> >     encoder         : Lavf55.37.100
> >     Stream #0:0: Video: mpeg4, yuv420p, 639x361, q=2-31, 200 kb/s, 90k tbn, 200 tbc
> >     Metadata:
> >       title           : ~temp.avi Video #1
> > Stream mapping:
> >   Stream #0:0 -> #0:0 (msmpeg4 -> mpeg4)
>
> It would have been interesting to see the next few lines here.
>

Yes... but no matter what I do with redirection, I can't seem to catch those all of those 'heartbeat' messages :( ... the closest I can get is the following:-

[...]
Press [q] to stop, [?] for help
frame=  111 fps=0.0 q=2.0 size=     262kB time=00:00:00.55 bitrate=3867.2kbits/s
frame=  201 fps=198 q=2.0 size=     472kB time=00:00:01.00 bitrate=3847.4kbits/s
frame=  295 fps=195 q=2.0 size=     736kB time=00:00:01.47 bitrate=4087.7kbits/s
frame=  391 fps=192 q=2.0 size=     988kB time=00:00:01.95 bitrate=4140.0kbits/s
frame=  483 fps=191 q=2.0 size=    1230kB time=00:00:02.41 bitrate=4172.3kbits/s
frame=  560 fps=183 q=2.0 size=    1434kB time=00:00:02.80 bitrate=4195.5kbits/s
frame=  652 fps=182 q=2.0 size=    1706kB time=00:00:03.26 bitrate=4287.0kbits/s
frame=  747 fps=182 q=2.0 size=    1968kB time=00:00:03.73 bitrate=4316.4kbits/s
frame=  794 fps=183 q=2.0 Lsize=    2086kB time=00:00:03.97 bitrate=4304.4kbits/
s dup=615 drop=0
[...]


...which *does* show there are recognized duplicate frames (I think).

> What gives:

> 
> ffmpeg -i sample.avi -an -sn -f null /dev/null 2>&1 | grep '^frame='

Trying something similar under WinXP, which I'm using:-

c:\> ffmpeg -i ..\videos\sample.avi -an -sn -f null nul 2>&1


[...]
Input #0, avi, from '..\videos\sample.avi':
  Metadata:
    encoder         : Lavf55.37.100
  Duration: 00:00:35.00, start: 0.000000, bitrate: 1707 kb/s
    Stream #0:0: Video: msmpeg4v3 (MP43 / 0x3334504D), yuv420p, 639x361, 1668 kb/s, 200 fps, 200 tbr, 200 tbn, 200 tbc
    Metadata:
      title           : ~temp.avi Video #1
Output #0, null, to 'nul':
  Metadata:
    encoder         : Lavf55.37.100
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 639x361, q=2-31, 200 kb/s, 90k tbn, 200 tbc
    Metadata:
      title           : ~temp.avi Video #1
Stream mapping:
  Stream #0:0 -> #0:0 (msmpeg4 -> rawvideo)
Press [q] to stop, [?] for help
[null @ 02cb6bc0] Encoder did not produce proper pts, making some up.
frame=  179 fps=0.0 q=0.0 size=N/A time=00:00:03.97 bitrate=N/A    
video:101kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 17802988408012800.000000%

...if that helps...?


-John


More information about the ffmpeg-user mailing list