Answers.Body: <p>Your suspicion is correct. The image demuxer has a default framerate of 25.</p>
  <p>To set a framerate of 30, you will need ffmpeg 5.0+ and modify each file entry as follows:</p>
  <pre><code>file red_image.png
  option framerate 30
  duration 1
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-11-22T17:36:02.080Z
Answers.LastActivityDate: 2024-11-22T17:36:02.080Z
Answers.UserDisplayName: Gyan
Body: <p>I'm creating a video from a list of images, where images should have different durations.
  This works, except the images do not have the correct durations in the resulting video.
  Using Linux Mint and FFmpeg version 4.4.2 or 4.5.5</p>
  <p>To illustrate, lets create a 30 fps video with a red images for 1 second, followed by alternating green and blue images lasting 100 ms (= 3 frames) each.</p>
  <p>Create 3 colored images:</p>
  <pre><code>ffmpeg -f lavfi -i color=c=red:s=1000x1000:d=1 red_image.png
  ffmpeg -f lavfi -i color=c=green:s=1000x1000:d=1 green_image.png
  ffmpeg -f lavfi -i color=c=blue:s=1000x1000:d=1 blue_image.png
  </code></pre>
  <p>Save this as colored_images_list.txt</p>
  <pre><code>file red_image.png
  duration 1
  file green_image.png
  duration 0.1
  file blue_image.png
  duration 0.1
  file green_image.png
  duration 0.1
  file blue_image.png
  duration 0.1
  file green_image.png
  duration 0.1
  file blue_image.png
  duration 0.1
  file green_image.png
  duration 0.1
  file blue_image.png
  </code></pre>
  <p>and run the command</p>
  <p><code>ffmpeg -f concat -i colored_images_list.txt -r 30 -pix_fmt yuv420p test.mp4</code></p>
  <p>The resulting video should contain 30 red frames, followed by 3 green frames, 3 blue frames, 3 green frames, 3 blue frames, etc.</p>
  <p>But (as can be verified using any video editor or <code>ffmpeg -i test.mp4 output_frame_%04d.png</code>) it contains 29 red frames, then 4 green frame, 2 blue frames, 4 green frames, 2 blue frames, etc.</p>
  <p>My suspicion is that the video is created at 25 fps which isn't a great fit for the 0.1 s durations (which would be 2.5 frame) and then converted to 30 fps.</p>
  <p>The output of FFmpeg seem to support this:</p>
  <pre class="lang-none prettyprint-override"><code>  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
    configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
    WARNING: library configuration mismatch
    avcodec     configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
    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, concat, from 'colored_images_list.txt':
    Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24(pc), 1000x1000 [SAR 1:1 DAR 1:1], 25 fps, 25 tbr, 25 tbn, 25 tbc
  Stream mapping:
    Stream #0:0 -&gt; #0:0 (png (native) -&gt; h264 (libx264))
  Press [q] to stop, [?] for help
  [libx264 @ 0x5555c7528dc0] using SAR=1/1
  [libx264 @ 0x5555c7528dc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
  [libx264 @ 0x5555c7528dc0] profile High, level 3.2, 4:2:0, 8-bit
  [libx264 @ 0x5555c7528dc0] 264 - core 164 r3191 4613ac3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - 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=18 lookahead_threads=3 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 'test.mp4':
    Metadata:
      encoder         : Lavf58.76.100
    Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, progressive), 1000x1000 [SAR 1:1 DAR 1:1], q=2-31, 30 fps, 15360 tbn
      Metadata:
        encoder         : Lavc58.134.100 libx264
      Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  frame=   49 fps=0.0 q=-1.0 Lsize=       5kB time=00:00:01.53 bitrate=  27.7kbits/s dup=42 drop=0 speed=4.17x    
  video:4kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 37.138432%
  [libx264 @ 0x5555c7528dc0] frame I:5     Avg QP: 8.86  size:   257
  [libx264 @ 0x5555c7528dc0] frame P:13    Avg QP:12.38  size:    49
  [libx264 @ 0x5555c7528dc0] frame B:31    Avg QP:14.16  size:    41
  [libx264 @ 0x5555c7528dc0] consecutive B-frames: 14.3%  0.0% 12.2% 73.5%
  [libx264 @ 0x5555c7528dc0] mb I  I16..4: 100.0%  0.0%  0.0%
  [libx264 @ 0x5555c7528dc0] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%
  [libx264 @ 0x5555c7528dc0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0:50.0% L1:50.0% BI: 0.0%
  [libx264 @ 0x5555c7528dc0] 8x8 transform intra:0.0%
  [libx264 @ 0x5555c7528dc0] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
  [libx264 @ 0x5555c7528dc0] i16 v,h,dc,p: 98%  0%  2%  0%
  [libx264 @ 0x5555c7528dc0] i8c dc,h,v,p: 98%  2%  0%  0%
  [libx264 @ 0x5555c7528dc0] Weighted P-Frames: Y:15.4% UV:15.4%
  [libx264 @ 0x5555c7528dc0] kb/s:15.59
  </code></pre>
  <p>I've found several sources (<a href="https://ffmpeg.org/ffmpeg-formats.html#image2-1" rel="nofollow noreferrer">https://ffmpeg.org/ffmpeg-formats.html#image2-1</a> explaining to se the input frame rate using <code>-framerate 1/30</code> before the -i option. but this gives me the error</p>
  <pre><code>$ ffmpeg -f concat -framerate 30 -i colored_images_list.txt -r 30 -pix_fmt yuv420p test.mp4
  trash: Volume of file: /home
  trash: Trash-dir: /home/roland/.local/share/Trash from volume: /home
  trash: 'test.mp4' trashed in ~/.local/share/Trash
  ffmpeg version 4.4.5-0ubuntu1~22.04.sav0 Copyright (c) 2000-2024 the FFmpeg developers
    built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
    configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
    WARNING: library configuration mismatch
    avcodec     configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
    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
  Option framerate not found.
  </code></pre>
  <p>What's the solution here? how can I indicate the input frame rate should be 30 fps(thus the duration of 0.1 sec to be 3 frames)</p>
  
Tags: <ffmpeg>
Title: FFmpeg video-from-images with different durations, has wrong durations?
UserDisplayName: Roland
ThreadText: # FFmpeg video-from-images with different durations, has wrong durations?
  
  (Asked by: username_0 on 2024-11-22)
  
  I'm creating a video from a list of images, where images should have different durations.
  This works, except the images do not have the correct durations in the resulting video.
  Using Linux Mint and FFmpeg version 4.4.2 or 4.5.5
  
  To illustrate, lets create a 30 fps video with a red images for 1 second, followed by alternating green and blue images lasting 100 ms (= 3 frames) each.
  
  Create 3 colored images:
  
  ```
  ffmpeg -f lavfi -i color=c=red:s=1000x1000:d=1 red_image.png
  ffmpeg -f lavfi -i color=c=green:s=1000x1000:d=1 green_image.png
  ffmpeg -f lavfi -i color=c=blue:s=1000x1000:d=1 blue_image.png
  
  ```
  
  Save this as colored\_images\_list.txt
  
  ```
  file red_image.png
  duration 1
  file green_image.png
  duration 0.1
  file blue_image.png
  duration 0.1
  file green_image.png
  duration 0.1
  file blue_image.png
  duration 0.1
  file green_image.png
  duration 0.1
  file blue_image.png
  duration 0.1
  file green_image.png
  duration 0.1
  file blue_image.png
  
  ```
  
  and run the command
  
  `ffmpeg -f concat -i colored_images_list.txt -r 30 -pix_fmt yuv420p test.mp4`
  
  The resulting video should contain 30 red frames, followed by 3 green frames, 3 blue frames, 3 green frames, 3 blue frames, etc.
  
  But (as can be verified using any video editor or `ffmpeg -i test.mp4 output_frame_%04d.png`) it contains 29 red frames, then 4 green frame, 2 blue frames, 4 green frames, 2 blue frames, etc.
  
  My suspicion is that the video is created at 25 fps which isn't a great fit for the 0.1 s durations (which would be 2.5 frame) and then converted to 30 fps.
  
  The output of FFmpeg seem to support this:
  
  ```none
    built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
    configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
    WARNING: library configuration mismatch
    avcodec     configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
    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, concat, from 'colored_images_list.txt':
    Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: png, rgb24(pc), 1000x1000 [SAR 1:1 DAR 1:1], 25 fps, 25 tbr, 25 tbn, 25 tbc
  Stream mapping:
    Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
  Press [q] to stop, [?] for help
  [libx264 @ 0x5555c7528dc0] using SAR=1/1
  [libx264 @ 0x5555c7528dc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
  [libx264 @ 0x5555c7528dc0] profile High, level 3.2, 4:2:0, 8-bit
  [libx264 @ 0x5555c7528dc0] 264 - core 164 r3191 4613ac3 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - 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=18 lookahead_threads=3 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 'test.mp4':
    Metadata:
      encoder         : Lavf58.76.100
    Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(tv, progressive), 1000x1000 [SAR 1:1 DAR 1:1], q=2-31, 30 fps, 15360 tbn
      Metadata:
        encoder         : Lavc58.134.100 libx264
      Side data:
        cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  frame=   49 fps=0.0 q=-1.0 Lsize=       5kB time=00:00:01.53 bitrate=  27.7kbits/s dup=42 drop=0 speed=4.17x    
  video:4kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 37.138432%
  [libx264 @ 0x5555c7528dc0] frame I:5     Avg QP: 8.86  size:   257
  [libx264 @ 0x5555c7528dc0] frame P:13    Avg QP:12.38  size:    49
  [libx264 @ 0x5555c7528dc0] frame B:31    Avg QP:14.16  size:    41
  [libx264 @ 0x5555c7528dc0] consecutive B-frames: 14.3%  0.0% 12.2% 73.5%
  [libx264 @ 0x5555c7528dc0] mb I  I16..4: 100.0%  0.0%  0.0%
  [libx264 @ 0x5555c7528dc0] mb P  I16..4:  0.0%  0.0%  0.0%  P16..4:  0.0%  0.0%  0.0%  0.0%  0.0%    skip:100.0%
  [libx264 @ 0x5555c7528dc0] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  0.0%  0.0%  0.0%  direct: 0.0%  skip:100.0%  L0:50.0% L1:50.0% BI: 0.0%
  [libx264 @ 0x5555c7528dc0] 8x8 transform intra:0.0%
  [libx264 @ 0x5555c7528dc0] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0% inter: 0.0% 0.0% 0.0%
  [libx264 @ 0x5555c7528dc0] i16 v,h,dc,p: 98%  0%  2%  0%
  [libx264 @ 0x5555c7528dc0] i8c dc,h,v,p: 98%  2%  0%  0%
  [libx264 @ 0x5555c7528dc0] Weighted P-Frames: Y:15.4% UV:15.4%
  [libx264 @ 0x5555c7528dc0] kb/s:15.59
  
  ```
  
  I've found several sources (<https://ffmpeg.org/ffmpeg-formats.html#image2-1> explaining to se the input frame rate using `-framerate 1/30` before the -i option. but this gives me the error
  
  ```
  $ ffmpeg -f concat -framerate 30 -i colored_images_list.txt -r 30 -pix_fmt yuv420p test.mp4
  trash: Volume of file: /home
  trash: Trash-dir: /home/username_0/.local/share/Trash from volume: /home
  trash: 'test.mp4' trashed in ~/.local/share/Trash
  ffmpeg version 4.4.5-0ubuntu1~22.04.sav0 Copyright (c) 2000-2024 the FFmpeg developers
    built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
    configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
    WARNING: library configuration mismatch
    avcodec     configuration: --prefix=/usr --extra-version='0ubuntu1~22.04.sav0' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc --enable-libsmbclient
    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
  Option framerate not found.
  
  ```
  
  What's the solution here? how can I indicate the input frame rate should be 30 fps(thus the duration of 0.1 sec to be 3 frames)
  
  **Tags:** ffmpeg
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2024-11-22. Score: 0
  
  Your suspicion is correct. The image demuxer has a default framerate of 25.
  
  To set a framerate of 30, you will need ffmpeg 5.0+ and modify each file entry as follows:
  
  ```
  file red_image.png
  option framerate 30
  duration 1
  
  ```
  
  
  ---
  
  