Hi, I have learned, that ffmpeg respects a given tbr value as output frame rate.
Now I'm questioning the advantage of that behaviour. Can someone tell me? I only see disadvantages: - the video becomes encoded with lower quality, i.g. q=33.0 instead q=29.0 - the video size is 13 % bigger, e.g. 52253kB instead 46361kB - each frame is quadrupled to the output Below see my examples ... $ ffmpeg -t 7:30 -i "Original 14.mp4" -vf crop=640:320:640:176 -c:a copy -movflags faststart "output 7_30_crop.mp4" ffmpeg version 4.4-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2021 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Original 14.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Duration: 00:14:00.03, start: 0.000000, bitrate: 2413 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 2342 kb/s, 29.98 fps, 120 tbr, 90k tbn, 2k tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 63 kb/s (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help [libx264 @ 0x605a700] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64 [libx264 @ 0x605a700] profile High, level 3.1, 4:2:0, 8-bit [libx264 @ 0x605a700] 264 - core 161 r3048 b86ae3c - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'output 7_30_crop.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 640x320, q=2-31, 120 fps, 15360 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc58.134.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 63 kb/s (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.07 bitrate= 4.8kbits/s frame= 69 fps=0.0 q=33.0 size= 0kB time=00:00:00.65 bitrate= 0.6kbits/ frame= 109 fps= 88 q=33.0 size= 0kB time=00:00:00.99 bitrate= 0.4kbits/ frame= 153 fps= 85 q=33.0 size= 0kB time=00:00:01.35 bitrate= 0.3kbits/ frame= 189 fps= 81 q=33.0 size= 0kB time=00:00:01.65 bitrate= 0.2kbits/ frame= 225 fps= 78 q=33.0 size= 0kB time=00:00:01.95 bitrate= 0.2kbits/ [.......] [mp4 @ 0x602ad80] Starting second pass: moving the moov atom to the beginning of the file frame=54003 fps= 63 q=-1.0 Lsize= 56837kB time=00:07:30.00 bitrate=1034.7kbits/s dup=40512 drop=0 speed=0.523x video:52253kB audio:3468kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.002371% [libx264 @ 0x605a700] frame I:224 Avg QP:24.11 size: 43287 [libx264 @ 0x605a700] frame P:13845 Avg QP:27.39 size: 2956 [libx264 @ 0x605a700] frame B:39934 Avg QP:34.70 size: 72 [libx264 @ 0x605a700] consecutive B-frames: 0.8% 1.5% 0.8% 96.9% [libx264 @ 0x605a700] mb I I16..4: 1.0% 47.3% 51.7% [libx264 @ 0x605a700] mb P I16..4: 0.2% 1.0% 0.2% P16..4: 24.7% 11.7% 9.8% 0.0% 0.0% skip:52.5% [libx264 @ 0x605a700] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 8.5% 0.1% 0.0% direct: 0.0% skip:91.3% L0:48.1% L1:49.9% BI: 2.1% [libx264 @ 0x605a700] 8x8 transform intra:58.5% inter:52.5% [libx264 @ 0x605a700] coded y,uvDC,uvAC intra: 82.9% 78.0% 40.6% inter: 4.8% 2.3% 0.1% [libx264 @ 0x605a700] i16 v,h,dc,p: 25% 31% 8% 36% [libx264 @ 0x605a700] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 20% 12% 6% 6% 7% 8% 10% 10% [libx264 @ 0x605a700] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 21% 10% 6% 8% 9% 8% 8% 9% [libx264 @ 0x605a700] i8c dc,h,v,p: 50% 21% 19% 9% [libx264 @ 0x605a700] Weighted P-Frames: Y:4.2% UV:0.9% [libx264 @ 0x605a700] ref P L0: 76.1% 12.0% 8.4% 2.9% 0.5% [libx264 @ 0x605a700] ref B L0: 92.6% 6.7% 0.7% [libx264 @ 0x605a700] ref B L1: 94.4% 5.6% [libx264 @ 0x605a700] kb/s:951.17 $ ffprobe "output 7_30_crop.mp4" ffprobe version 4.4-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2021 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output 7_30_crop.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Duration: 00:07:30.03, start: 0.000000, bitrate: 1034 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x320, 951 kb/s, 120 fps, 120 tbr, 15360 tbn, 240 tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 63 kb/s (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] $ ffmpeg -t 7:30 -i "Original 14.mp4" -vf crop=640:320:640:176 -r 29.98 -c:a copy -movflags faststart "output 7_30_crop_29_98.mp4" ffmpeg version 4.4-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2021 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Original 14.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Duration: 00:14:00.03, start: 0.000000, bitrate: 2413 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 2342 kb/s, 29.98 fps, 120 tbr, 90k tbn, 2k tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 63 kb/s (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] File 'output 7_30_crop_29_98.mp4' already exists. Overwrite? [y/N] y Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help [libx264 @ 0x6876f00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64 [libx264 @ 0x6876f00] profile High, level 3.0, 4:2:0, 8-bit [libx264 @ 0x6876f00] 264 - core 161 r3048 b86ae3c - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'output 7_30_crop_29_98.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 640x320, q=2-31, 29.98 fps, 11992 tbn (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] encoder : Lavc58.134.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 63 kb/s (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.07 bitrate= 4.8kbits/s frame= 57 fps=0.0 q=29.0 size= 0kB time=00:00:01.99 bitrate= 0.2kbits/ frame= 80 fps= 65 q=29.0 size= 0kB time=00:00:02.76 bitrate= 0.1kbits/ frame= 108 fps= 62 q=29.0 size= 256kB time=00:00:03.70 bitrate= 566.0kbits/ frame= 133 fps= 59 q=29.0 size= 256kB time=00:00:04.47 bitrate= 468.8kbits/ [.......] [mp4 @ 0x685e100] Starting second pass: moving the moov atom to the beginning of the file frame=13491 fps= 54 q=-1.0 Lsize= 50283kB time=00:07:29.99 bitrate= 915.4kbits/s dup=345 drop=345 speed=1.81x video:46361kB audio:3468kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.909383% [libx264 @ 0x6876f00] frame I:63 Avg QP:22.04 size: 45591 [libx264 @ 0x6876f00] frame P:8991 Avg QP:24.68 size: 4402 [libx264 @ 0x6876f00] frame B:4437 Avg QP:31.12 size: 1133 [libx264 @ 0x6876f00] consecutive B-frames: 51.3% 12.8% 5.6% 30.3% [libx264 @ 0x6876f00] mb I I16..4: 1.8% 48.5% 49.7% [libx264 @ 0x6876f00] mb P I16..4: 0.1% 1.4% 0.4% P16..4: 24.5% 12.3% 12.4% 0.0% 0.0% skip:48.9% [libx264 @ 0x6876f00] mb B I16..4: 0.1% 0.6% 0.1% B16..8: 33.0% 6.9% 1.5% direct: 2.1% skip:55.7% L0:41.4% L1:45.8% BI:12.8% [libx264 @ 0x6876f00] 8x8 transform intra:66.7% inter:49.7% [libx264 @ 0x6876f00] coded y,uvDC,uvAC intra: 78.4% 71.3% 29.5% inter: 17.9% 8.7% 0.6% [libx264 @ 0x6876f00] i16 v,h,dc,p: 25% 30% 7% 38% [libx264 @ 0x6876f00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 21% 12% 6% 6% 7% 8% 10% 9% [libx264 @ 0x6876f00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 21% 12% 6% 7% 8% 8% 8% 8% [libx264 @ 0x6876f00] i8c dc,h,v,p: 53% 19% 19% 8% [libx264 @ 0x6876f00] Weighted P-Frames: Y:1.5% UV:0.6% [libx264 @ 0x6876f00] ref P L0: 83.1% 10.8% 5.2% 0.8% 0.1% [libx264 @ 0x6876f00] ref B L0: 92.6% 6.5% 0.9% [libx264 @ 0x6876f00] ref B L1: 98.4% 1.6% [libx264 @ 0x6876f00] kb/s:843.97 $ ffprobe "output 7_30_crop_29_98.mp4" ffprobe version 4.4-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2021 the FFmpeg developers built with gcc 8 (Debian 8.3.0-6) configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output 7_30_crop_29_98.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.76.100 Duration: 00:07:30.02, start: 0.000000, bitrate: 915 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x320, 843 kb/s, 29.98 fps, 29.98 tbr, 11992 tbn, 59.96 tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 63 kb/s (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] -Ulf _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".