[FFmpeg-user] Default output fps vs fps filter @ 30fps

Hans Carlson forbyta at gmx.com
Mon Oct 21 00:05:29 EEST 2019


I have an h264/vorbis video at 1k fps and want to convert it to mpeg2/ac3 
at 30 fps.  If I don't use the fps filter ffmpeg appears to automatically 
convert the output to 30 fps (which I assume is the default -r value), but 
the following warnings are displayed:

   More than 1000 frames duplicated
   More than 10000 frames duplicated

If I use the fps filter (fps=fps=30), then those warnings are not 
displayed and there's no indication of duplicated (or dropped) frames... 
although I assume there must have been.

I can't see any obvious difference between the 2 output files (although I 
haven't watched both completely through), so I'm just curious if there IS 
any appreciable difference for this video.

Is there any advantage (or disadvantage) to using the fps filter vs the -r 
option in this particular case?

Here's full output for both commands:

$ ffmpeg -i TEST.mkv -codec:v mpeg2video -b:v 16384k -bufsize 4096k -maxrate 30000k -codec:a ac3 -b:a 448k -ar 48000 -f vob TEST-default.mpg
ffmpeg version N-95488-g09581f7923 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 7 (GCC)
   configuration: --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-openssl
   libavutil      56. 35.101 / 56. 35.101
   libavcodec     58. 59.102 / 58. 59.102
   libavformat    58. 33.100 / 58. 33.100
   libavdevice    58.  9.100 / 58.  9.100
   libavfilter     7. 63.100 /  7. 63.100
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
Input #0, matroska,webm, from 'TEST.mkv':
   Metadata:
     ENCODER         : Lavf57.71.100
   Duration: 00:58:41.47, start: 0.000000, bitrate: 2190 kb/s
     Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1600x900 [SAR 1:1 DAR 16:9], 1k fps, 30 tbr, 1k tbn, 60 tbc (default)
     Metadata:
       DURATION        : 00:58:41.434000000
     Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 00:58:41.474000000
Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
   Stream #0:1 -> #0:1 (vorbis (native) -> ac3 (native))
Press [q] to stop, [?] for help
Output #0, vob, to 'TEST-default.mpg':
   Metadata:
     encoder         : Lavf58.33.100
     Stream #0:0: Video: mpeg2video (Main), yuv420p, 1600x900 [SAR 1:1 DAR 16:9], q=2-31, 16384 kb/s, 30 fps, 90k tbn, 30 tbc (default)
     Metadata:
       DURATION        : 00:58:41.434000000
       encoder         : Lavc58.59.102 mpeg2video
     Side data:
       cpb: bitrate max/min/avg: 30000000/0/16384000 buffer size: 4096000 vbv_delay: N/A
     Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s (default)
     Metadata:
       DURATION        : 00:58:41.474000000
       encoder         : Lavc58.59.102 ac3
More than 1000 frames duplicated  73126kB time=00:03:11.54 bitrate=3127.4kbits/s dup=985 drop=0 speed= 6.8x 
More than 10000 frames duplicated510586kB time=00:13:46.84 bitrate=5058.7kbits/s dup=9998 drop=0 speed=6.22x 
frame=105644 fps=198 q=2.0 Lsize= 1967088kB time=00:58:41.50 bitrate=4576.0kbits/s dup=31190 drop=0 speed=6.58x 
video:1749220kB audio:192582kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.302177%

$ ffmpeg -i TEST.mkv -codec:v mpeg2video -b:v 16384k -bufsize 4096k -maxrate 30000k -codec:a ac3 -b:a 448k -ar 48000 -vf fps=fps=30 -f vob TEST-fpsfilter.mpg
ffmpeg version N-95488-g09581f7923 Copyright (c) 2000-2019 the FFmpeg developers
   built with gcc 7 (GCC)
   configuration: --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-openssl
   libavutil      56. 35.101 / 56. 35.101
   libavcodec     58. 59.102 / 58. 59.102
   libavformat    58. 33.100 / 58. 33.100
   libavdevice    58.  9.100 / 58.  9.100
   libavfilter     7. 63.100 /  7. 63.100
   libswscale      5.  6.100 /  5.  6.100
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
Input #0, matroska,webm, from 'TEST.mkv':
   Metadata:
     ENCODER         : Lavf57.71.100
   Duration: 00:58:41.47, start: 0.000000, bitrate: 2190 kb/s
     Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1600x900 [SAR 1:1 DAR 16:9], 1k fps, 30 tbr, 1k tbn, 60 tbc (default)
     Metadata:
       DURATION        : 00:58:41.434000000
     Stream #0:1: Audio: vorbis, 48000 Hz, stereo, fltp (default)
     Metadata:
       DURATION        : 00:58:41.474000000
Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
   Stream #0:1 -> #0:1 (vorbis (native) -> ac3 (native))
Press [q] to stop, [?] for help
Output #0, vob, to 'TEST-fpsfilter.mpg':
   Metadata:
     encoder         : Lavf58.33.100
     Stream #0:0: Video: mpeg2video (Main), yuv420p, 1600x900 [SAR 1:1 DAR 16:9], q=2-31, 16384 kb/s, 30 fps, 90k tbn, 30 tbc (default)
     Metadata:
       DURATION        : 00:58:41.434000000
       encoder         : Lavc58.59.102 mpeg2video
     Side data:
       cpb: bitrate max/min/avg: 30000000/0/16384000 buffer size: 4096000 vbv_delay: N/A
     Stream #0:1: Audio: ac3, 48000 Hz, stereo, fltp, 448 kb/s (default)
     Metadata:
       DURATION        : 00:58:41.474000000
       encoder         : Lavc58.59.102 ac3
frame=105643 fps=193 q=2.0 Lsize= 1967588kB time=00:58:41.50 bitrate=4577.2kbits/s speed=6.44x 
video:1749717kB audio:192582kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.302014%


More information about the ffmpeg-user mailing list