0

I have ffmpeg 5.0 installed on a new Silicon M1 Mac Mini running Monterey and concat is failing with the same command that has served me well on ffmpeg 4.1.1 lo, all these many years. Anyone have an idea why this command would fail on the newer version of ffmpeg. This is with the exact same mp4 files. The ffmpeg 4.1.1. completes the concat in less than a minute.

ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4

Thank you!

ffmpeg 4.1.1 Info and output...

$ ffmpeg -version
ffmpeg version 4.1.1 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom -


$ ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4
ffmpeg version 4.1.1 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr --enable-libvidstab
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vid1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:13.01, start: 0.000000, bitrate: 1240 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480, 1103 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'vid2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:07.00, start: 0.000000, bitrate: 122 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 112 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 (h264) -> concat:in0:v0
  Stream #0:1 (aac) -> concat:in0:a0
  Stream #1:0 (h264) -> concat:in1:v0
  Stream #1:1 (aac) -> concat:in1:a0
  concat:out:v0 -> Stream #0:0 (libx264)
  concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[libx264 @ 0x7fd56881dc00] using SAR=1/1
[libx264 @ 0x7fd56881dc00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
[libx264 @ 0x7fd56881dc00] profile High, level 3.0
[libx264 @ 0x7fd56881dc00] 264 - core 155 r2917 0a84d98 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - 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.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 1:1 DAR 3:2], q=-1--1, 29.97 fps, 11988 tbn, 29.97 tbc (default)
    Metadata:
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      encoder         : Lavc58.35.100 aac
frame=   46 fps=0.0 q=0.0 size=       0kB time=00:00:01.55 bitrate=   0.2kbits/s spframe=   64 fps= 57 q=26.0 size=       0kB time=00:00:02.15 bitrate=   0.2kbits/s sframe=   83 fps= 51 q=29.0 size=       0kB time=00:00:02.78 bitrate=   0.1kbits/s sframe=  106 fps= 49 q=26.0 size=       0kB time=00:00:03.55 bitrate=   0.1kbits/s sframe=  131 fps= 49 q=29.0 size=     256kB time=00:00:04.38 bitrate= 478.0kbits/s sframe=  155 fps= 49 q=29.0 size=     256kB time=00:00:05.20 bitrate= 403.3kbits/s sframe=  178 fps= 48 q=29.0 size=     512kB time=00:00:05.96 bitrate= 702.9kbits/s sframe=  198 fps= 47 q=26.0 size=     512kB time=00:00:06.61 bitrate= 633.9kbits/s sframe=  218 fps= 46 q=29.0 size=     512kB time=00:00:07.26 bitrate= 577.2kbits/s sframe=  238 fps= 46 q=29.0 size=     768kB time=00:00:07.96 bitrate= 790.0kbits/s sframe=  255 fps= 44 q=29.0 size=     768kB time=00:00:08.52 bitrate= 738.3kbits/s sframe=  278 fps= 45 q=26.0 size=     768kB time=00:00:09.28 bitrate= 677.4kbits/s sframe=  296 fps= 44 q=29.0 size=    1024kB time=00:00:09.89 bitrate= 848.1kbits/s sframe=  317 fps= 43 q=29.0 size=    1024kB time=00:00:10.58 bitrate= 792.3kbits/s sframe=  333 fps= 42 q=29.0 size=    1024kB time=00:00:11.12 bitrate= 754.2kbits/s sframe=  351 fps= 42 q=29.0 size=    1024kB time=00:00:11.72 bitrate= 715.4kbits/s sframe=  363 fps= 41 q=29.0 size=    1024kB time=00:00:12.14 bitrate= 690.8kbits/s sframe=  377 fps= 40 q=29.0 size=    1280kB time=00:00:12.60 bitrate= 831.7kbits/s sframe=  389 fps= 39 q=29.0 size=    1280kB time=00:00:12.95 bitrate= 809.3kbits/s sframe=  401 fps= 38 q=29.0 size=    1280kB time=00:00:13.39 bitrate= 782.7kbits/s dframe=  410 fps= 37 q=29.0 size=    1280kB time=00:00:13.72 bitrate= 764.1kbits/s dframe=  425 fps= 37 q=29.0 size=    1536kB time=00:00:14.18 bitrate= 886.9kbits/s dframe=  446 fps= 37 q=29.0 size=    1536kB time=00:00:14.90 bitrate= 844.1kbits/s dframe=  506 fps= 40 q=29.0 size=    1536kB time=00:00:16.90 bitrate= 744.4kbits/s dframe=  564 fps= 43 q=29.0 size=    1536kB time=00:00:18.83 bitrate= 668.2kbits/s dframe=  600 fps= 44 q=-1.0 Lsize=    1807kB time=00:00:20.03 bitrate= 738.9kbits/s dup=35 drop=0 speed=1.45x    
video:1580kB audio:206kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.204253%
[libx264 @ 0x7fd56881dc00] frame I:74    Avg QP:19.97  size:  9747
[libx264 @ 0x7fd56881dc00] frame P:205   Avg QP:19.82  size:  2384
[libx264 @ 0x7fd56881dc00] frame B:321   Avg QP:20.41  size:  1269
[libx264 @ 0x7fd56881dc00] consecutive B-frames: 25.8%  5.3%  9.5% 59.3%
[libx264 @ 0x7fd56881dc00] mb I  I16..4: 17.8% 79.7%  2.5%
[libx264 @ 0x7fd56881dc00] mb P  I16..4:  2.7%  5.7%  0.7%  P16..4: 17.7%  3.1%  1.2%  0.0%  0.0%    skip:68.8%
[libx264 @ 0x7fd56881dc00] mb B  I16..4:  0.3%  1.1%  0.1%  B16..8: 18.4%  1.7%  0.2%  direct: 1.6%  skip:76.5%  L0:57.0% L1:40.0% BI: 3.0%
[libx264 @ 0x7fd56881dc00] 8x8 transform intra:75.9% inter:87.2%
[libx264 @ 0x7fd56881dc00] coded y,uvDC,uvAC intra: 54.9% 8.2% 1.3% inter: 6.5% 6.0% 0.9%
[libx264 @ 0x7fd56881dc00] i16 v,h,dc,p: 44% 34% 14%  8%
[libx264 @ 0x7fd56881dc00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 22% 30%  4%  5%  3%  5%  3%  5%
[libx264 @ 0x7fd56881dc00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 41% 29%  1%  2%  2%  2%  1%  1%
[libx264 @ 0x7fd56881dc00] i8c dc,h,v,p: 92%  5%  1%  1%
[libx264 @ 0x7fd56881dc00] Weighted P-Frames: Y:1.5% UV:0.5%
[libx264 @ 0x7fd56881dc00] ref P L0: 58.7%  9.7% 21.6% 10.0%  0.1%
[libx264 @ 0x7fd56881dc00] ref B L0: 85.1% 11.6%  3.3%
[libx264 @ 0x7fd56881dc00] ref B L1: 95.7%  4.3%
[libx264 @ 0x7fd56881dc00] kb/s:646.32
[aac @ 0x7fd56881f400] Qavg: 23136.783
$

ffmpeg 5.0 Info and output... It never completes

% ffmpeg -version
ffmpeg version 5.0-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 11.0.0 (clang-1100.0.33.17)

% ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4
ffmpeg version 5.0-tessus  https://evermeet.cx/ffmpeg/  Copyright (c) 2000-2022 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.17)
  configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'vid1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:13.01, start: 0.000000, bitrate: 1240 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 720x480, 1103 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'vid2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Duration: 00:00:07.00, start: 0.000000, bitrate: 122 kb/s
  Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 1:1 DAR 3:2], 112 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #1:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
Stream mapping:
  Stream #0:0 (h264) -> concat
  Stream #0:1 (aac) -> concat
  Stream #1:0 (h264) -> concat
  Stream #1:1 (aac) -> concat
  concat -> Stream #0:0 (libx264)
  concat -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[mp4 @ 0x7fbab280dbc0] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 0x7fbab280e840] using SAR=1/1
[libx264 @ 0x7fbab280e840] MB rate (1350000000) > level limit (16711680)
[libx264 @ 0x7fbab280e840] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x7fbab280e840] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 0x7fbab280e840] 264 - core 164 r3081 19856cc - 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=12 lookahead_threads=2 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.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf59.16.100
  Stream #0:0: Video: h264 (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 1:1 DAR 3:2], q=2-31, 1000k tbn
    Metadata:
      encoder         : Lavc59.18.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
  Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s
    Metadata:
      encoder         : Lavc59.18.100 aac
frame=    1 fps=0.0 q=0.0 size=       0kB time=00:00:00.23 bitrate=   1.7kbits/sMore than 1000 frames duplicated
frame=33367 fps=843 q=33.0 size=    2048kB time=00:00:00.27 bitrate=60212.7kbitsMore than 10000 frames duplicatedx    
frame=66733 fps=841 q=33.0 size=    4352kB time=00:00:00.32 bitrate=109671.7kbitMore than 100000 frames duplicatedx    
frame=100100 fps=825 q=33.0 size=    6656kB time=00:00:00.34 bitrate=156550.4kbiframe=133467 fps=806 q=33.0 size=    8704kB time=00:00:00.39 bitrate=180634.7kbiframe=166834 fps=810 q=33.0 size=   11008kB time=00:00:00.41 bitrate=215757.8kbiframe=200200 fps=812 q=33.0 size=   13312kB time=00:00:00.46 bitrate=234824.6kbiframe=233567 fps=814 q=33.0 size=   153
...
Woolwit
  • 89
  • 8
  • Is this based on the exact same data being tested under the 2 versions? Also, it's almost impossible for anyone to even guess "why this command would fail" without knowing what you are doing and what your error is. – kesh Apr 13 '22 at 14:06

1 Answers1

0

Adding -vsync 0, as in

ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" -vsync 0 output.mp4

solved my problem. As per: ffmpeg command execution never stops

Woolwit
  • 89
  • 8