0

I used this command for concatenating 2 constant rate videos:

ffmpeg -f concat -i files.txt  -c copy output.mp4

where the file files.txt has this content:

file input1.mp4
file input2.mp4

I'm wondering why the output file has a variable frame rate, even though both input files has a constant one?


Part of MediaInfo for every input file:

Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 30.000 FPS
Color space                              : YUV

and for the output file:

Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 29.905 FPS
Minimum frame rate                       : 19.224 FPS
Maximum frame rate                       : 30.000 FPS
Color space                              : YUV

FFprobe outputs:

>ffprobe -hide_banner input1.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:02.95, start: 0.000000, bitrate: 2649 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2394 kb/s, 30 fps, 30 tbr, 15360 tbn
, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 258 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

>ffprobe -hide_banner input2.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:02.95, start: 0.000000, bitrate: 2649 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2394 kb/s, 30 fps, 30 tbr, 15360 tbn
, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 258 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

>ffprobe -hide_banner output.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.22.100
  Duration: 00:00:05.90, start: 0.000000, bitrate: 2647 kb/s
    Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 2386 kb/s, 29.90 fps, 60 tbr, 15360
tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 257 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
  • Share the ffprobe output for both files and the output – Gyan Mar 23 at 6:41
  • @Gyan, I added it now. – MarianD Mar 23 at 7:22
  • Does ffmpeg -f concat -i files.txt -c copy -an output.mp4 yield a CFR output? – Gyan Mar 23 at 9:44
  • @Gyan, no, the output is still VFR. – MarianD Mar 23 at 18:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.