Default output fps vs fps filter @ 30fps

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Default output fps vs fps filter @ 30fps

Hans Carlson-2
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%
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Default output fps vs fps filter @ 30fps

Carl Eugen Hoyos-2


> Am 20.10.2019 um 23:05 schrieb Hans Carlson <[hidden email]>:
>
> Is there any advantage (or disadvantage) to using the fps filter vs the -r option in this particular case?

The main difference between the fps filter and the constant frame rate output that can be forced by the command line utility is that the filter is less verbose.
The algorithms are not equally greedy but it is likely that this makes little or no difference for your use case.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Default output fps vs fps filter @ 30fps

Hans Carlson-2
On Sun, 20 Oct 2019, Carl Eugen Hoyos wrote:

>> Am 20.10.2019 um 23:05 schrieb Hans Carlson <[hidden email]>:
>>
>> Is there any advantage (or disadvantage) to using the fps filter vs the
>> -r option in this particular case?
>
> The main difference between the fps filter and the constant frame rate
> output that can be forced by the command line utility is that the filter
> is less verbose. The algorithms are not equally greedy but it is likely
> that this makes little or no difference for your use case.

Ah, so the fps filter *could* display the same/similar kind of "frames
duplicated" messages, it just doesn't.  Thanks Carl, that's kind of what I
suspected.

PS. I do realize there may be instances (eg. different codecs and/or
increasing fps) where the filter vs -r option could make more of a
difference.  But in this instance, as you say, probably nothing noticeable.
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".