Body: <p>I used this command for concatenating 2 constant rate videos:</p>
  
  <pre><code>ffmpeg -f concat -i files.txt  -c copy output.mp4
  </code></pre>
  
  <p>where the file <code>files.txt</code> has this content:</p>
  
  <pre><code>file input1.mp4
  file input2.mp4
  </code></pre>
  
  <p>I'm wondering why the <em>output</em> file has a <em>variable frame rate</em>, even though both <em>input</em> files has a <em>constant</em> one?</p>
  
  <hr>
  
  <p>Part of MediaInfo for every <em>input</em> file:</p>
  
  <pre><code>Height                                   : 720 pixels
  Display aspect ratio                     : 16:9
  Frame rate mode                          : Constant
  Frame rate                               : 30.000 FPS
  Color space                              : YUV
  </code></pre>
  
  <p>and for the <em>output</em> file:</p>
  
  <pre><code>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
  </code></pre>
  
  <hr>
  
  <p>FFprobe outputs:</p>
  
  <pre><code>&gt;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
  </code></pre>
  
  <hr>
  
  <pre><code>&gt;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
  </code></pre>
  
  <hr>
  
  <pre><code>&gt;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
  </code></pre>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-23T06:41:16.670Z
Comments.Text: Share the ffprobe output for both files and the output
Comments.UserDisplayName: Gyan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-23T07:22:42.580Z
Comments.Text: @Gyan, I added it now.
Comments.UserDisplayName: MarianD
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-23T09:44:12.617Z
Comments.Text: Does `ffmpeg -f concat -i files.txt  -c copy -an output.mp4` yield a CFR output?
Comments.UserDisplayName: Gyan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-03-23T18:52:02.407Z
Comments.Text: @Gyan, no, the output is still VFR.
Comments.UserDisplayName: MarianD
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-06-24T05:18:26.680Z
Comments.Text: @Gyan Were you able to find out the cause? I'm facing the exact same problem. It appears to be related to audio. -an on contact doesn't change anything, but if I remove audio from both files before concat framerate becomes constant.
Comments.UserDisplayName: Dmitry Kuskov
Tags: <ffmpeg>
Title: VFR output from muxer-level concatenation of CFR inputs
UserDisplayName: MarianD
ThreadText: # VFR output from muxer-level concatenation of CFR inputs
  
  (Asked by: username_0 on 2019-03-23)
  
  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
  
  ```
  
  **Tags:** ffmpeg
  
  > **Comments:**
  > **username_1**: Share the ffprobe output for both files and the output  
  > **username_0**: @username_1, I added it now.  
  > **username_1**: Does `ffmpeg -f concat -i files.txt  -c copy -an output.mp4` yield a CFR output?  
  > **username_0**: @username_1, no, the output is still VFR.  
  > **username_2**: @username_1 Were you able to find out the cause? I'm facing the exact same problem. It appears to be related to audio. -an on contact doesn't change anything, but if I remove audio from both files before concat framerate becomes constant.  
  
  ---
  
  ## 0 answers
  
  