[FFmpeg-user] Creating video with xfade takes 27 GB of memory

Cecil Westerhof Cecil at decebal.nl
Thu May 25 01:03:47 EEST 2023


I generate several videos in a similar way. I have only a problem with
one.
The command for the one with a problem is:
time nice -n 10 ionice -c3 ffmpeg -y -ss 48 -t 4 -i langeLijn1c.mkv -ss 0 -to 176 -i langeLijn1d.mkv -pix_fmt yuv420p -vcodec libx264 -crf 26 -acodec libmp3lame -qscale:a 9 -preset veryfast -filter_complex '
    [0:v][1:v]
                xfade=transition=slideup:
                duration=4:
                offset=0
                                                            [v01];
    [0:a][1:a]
                acrossfade=d=4
                                                            [a01];
    [v01]
                drawtext=                   box        = 1:                         boxborderw = 6:                         boxcolor   = black at 0.2:                 fontcolor  = white at 0.4:                 fontfile   = FreeSerifBold.ttf:         fontsize   = 32:                        text       = © 2023 Cecil Westerhof - Cecil at Decebal.nl
:             x          = ((main_w - text_w) / 2):   y          = main_h - (text_h * 2)    
                                                            [v02]' -map '[v02]' -map '[a01]' langeLijn1Temp/d.ts


The output starts with:
ffmpeg version 4.3.5-0+deb11u1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --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-librsvg --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-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --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-librsvg --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-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, matroska,webm, from 'langeLijn1c.mkv':
  Metadata:
    ENCODER         : Lavf58.45.100
  Duration: 00:00:52.05, start: 0.000000, bitrate: 20470 kb/s
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      DURATION        : 00:00:52.047000000
    Stream #0:1: Audio: mp3, 48000 Hz, stereo, fltp, 117 kb/s (default)
    Metadata:
      DURATION        : 00:00:51.768000000
Input #1, matroska,webm, from 'langeLijn1d.mkv':
  Metadata:
    ENCODER         : Lavf58.45.100
  Duration: 00:03:00.93, start: 0.000000, bitrate: 22615 kb/s
    Stream #1:0: Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
    Metadata:
      DURATION        : 00:03:00.927000000
    Stream #1:1: Audio: mp3, 48000 Hz, stereo, fltp, 122 kb/s (default)
    Metadata:
      DURATION        : 00:03:00.624000000
[Parsed_drawtext_2 @ 0x5645c1240580] Using "/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf"
Stream mapping:
  Stream #0:0 (h264) -> xfade:main
  Stream #0:1 (mp3float) -> acrossfade:crossfade0
  Stream #1:0 (h264) -> xfade:xfade
  Stream #1:1 (mp3float) -> acrossfade:crossfade1
  drawtext -> Stream #0:0 (libx264)
  acrossfade -> Stream #0:1 (libmp3lame)
Press [q] to stop, [?] for help
[Parsed_drawtext_2 @ 0x5645c1a96240] Using "/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf"
[libx264 @ 0x5645c1301100] using SAR=1/1
[libx264 @ 0x5645c1301100] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA3 BMI1
[libx264 @ 0x5645c1301100] profile High, level 4.0, 4:2:0, 8-bit
Output #0, mpegts, to 'langeLijn1Temp/d.ts':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0: Video: h264 (libx264), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 90k tbn, 25 tbc (default)
    Metadata:
      encoder         : Lavc58.91.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
    Stream #0:1: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp (default)
    Metadata:
      encoder         : Lavc58.91.100 libmp3lame

I first thought that the following could be a/the problem:
  WARNING: library configuration mismatch

But I see this warning back in the logging of all the created videos,
so that should not be a problem.
On the other hand: why do I get this error and what can I do about it?

After this I get:
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=    1 fps=0.7 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=    1 fps=0.5 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=    1 fps=0.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=    1 fps=0.3 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=   16 fps=4.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
frame=   25 fps=5.9 q=31.0 size=       0kB time=00:00:00.08 bitrate=   0.0kbits/s speed=0.019x
frame=   33 fps=7.0 q=31.0 size=       0kB time=00:00:00.40 bitrate=   0.0kbits/s speed=0.0845x
frame=   41 fps=7.8 q=31.0 size=       0kB time=00:00:00.72 bitrate=   0.0kbits/s speed=0.137x
frame=   47 fps=8.2 q=31.0 size=       0kB time=00:00:00.96 bitrate=   0.0kbits/s speed=0.167x
frame=   54 fps=8.5 q=31.0 size=       0kB time=00:00:01.24 bitrate=   0.0kbits/s speed=0.196x
frame=   63 fps=9.2 q=31.0 size=       0kB time=00:00:01.60 bitrate=   0.0kbits/s speed=0.233x
frame=   71 fps=9.6 q=31.0 size=       0kB time=00:00:01.92 bitrate=   0.0kbits/s speed=0.258x
frame=   79 fps=9.8 q=31.0 size=       0kB time=00:00:02.24 bitrate=   0.0kbits/s speed=0.279x
frame=   87 fps= 10 q=31.0 size=       0kB time=00:00:02.56 bitrate=   0.0kbits/s speed=0.296x
frame=   95 fps= 10 q=31.0 size=       0kB time=00:00:02.88 bitrate=   0.0kbits/s speed=0.314x
frame=  100 fps= 10 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.318x
frame=  100 fps=9.8 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.302x
frame=  100 fps=9.3 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.288x
frame=  100 fps=8.9 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.275x
frame=  100 fps=8.5 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.263x
.
.
.
frame=  100 fps=0.2 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.00543x
frame=  100 fps=0.2 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.00542x
frame=  100 fps=0.2 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.00542x
frame=  100 fps=0.2 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.0054x
frame=  100 fps=0.2 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.00538x
frame=  100 fps=0.2 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.00501x
frame=  102 fps=0.1 q=31.0 size=       0kB time=00:00:03.16 bitrate=   0.0kbits/s speed=0.00454x
frame=  103 fps=0.1 q=31.0 size=       0kB time=00:00:03.20 bitrate=   0.0kbits/s speed=0.00458x
frame=  104 fps=0.1 q=31.0 size=       0kB time=00:00:03.24 bitrate=   0.0kbits/s speed=0.00458x
frame=  105 fps=0.1 q=31.0 size=       0kB time=00:00:03.28 bitrate=   0.0kbits/s speed=0.00457x
frame=  106 fps=0.1 q=31.0 size=       0kB time=00:00:03.32 bitrate=   0.0kbits/s speed=0.00456x
frame=  107 fps=0.1 q=31.0 size=       0kB time=00:00:03.36 bitrate=   0.0kbits/s speed=0.00457x
frame=  108 fps=0.1 q=31.0 size=       0kB time=00:00:03.40 bitrate=   0.0kbits/s speed=0.00459x
frame=  109 fps=0.1 q=31.0 size=       0kB time=00:00:03.44 bitrate=   0.0kbits/s speed=0.00463x
frame=  110 fps=0.1 q=31.0 size=       0kB time=00:00:03.48 bitrate=   0.0kbits/s speed=0.00464x
frame=  111 fps=0.1 q=31.0 size=       0kB time=00:00:03.52 bitrate=   0.0kbits/s speed=0.00465x
frame=  112 fps=0.1 q=31.0 size=       0kB time=00:00:03.56 bitrate=   0.0kbits/s speed=0.00465x
frame=  113 fps=0.1 q=28.0 size=       0kB time=00:00:03.60 bitrate=   0.0kbits/s speed=0.0047x
.
.
.
frame= 4373 fps=1.3 q=31.0 size=  395776kB time=00:02:54.80 bitrate=18548.0kbits/s dup=0 drop=1 speed=0.0538x
frame= 4375 fps=1.3 q=31.0 size=  395776kB time=00:02:54.88 bitrate=18539.6kbits/s dup=0 drop=1 speed=0.0539x
frame= 4376 fps=1.3 q=31.0 size=  396032kB time=00:02:54.92 bitrate=18547.3kbits/s dup=0 drop=1 speed=0.0539x
frame= 4378 fps=1.3 q=28.0 size=  396288kB time=00:02:55.00 bitrate=18550.8kbits/s dup=0 drop=1 speed=0.0539x
frame= 4379 fps=1.3 q=31.0 size=  396288kB time=00:02:55.04 bitrate=18546.6kbits/s dup=0 drop=1 speed=0.0539x
frame= 4380 fps=1.3 q=31.0 size=  396288kB time=00:02:55.08 bitrate=18542.3kbits/s dup=0 drop=1 speed=0.0538x
frame= 4381 fps=1.3 q=31.0 size=  396544kB time=00:02:55.12 bitrate=18550.1kbits/s dup=0 drop=1 speed=0.0537x
frame= 4381 fps=1.3 q=31.0 size=  396544kB time=00:02:55.12 bitrate=18550.1kbits/s dup=0 drop=1 speed=0.0537x
frame= 4381 fps=1.3 q=-1.0 Lsize=  426550kB time=00:02:55.92 bitrate=19863.0kbits/s dup=0 drop=1 speed=0.0539x    
video:416366kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.446085%
[libx264 @ 0x5645c1301100] frame I:101   Avg QP:28.88  size:265654
[libx264 @ 0x5645c1301100] frame P:1360  Avg QP:31.23  size:146185
[libx264 @ 0x5645c1301100] frame B:2920  Avg QP:33.38  size: 68738
[libx264 @ 0x5645c1301100] consecutive B-frames:  6.3% 11.6%  8.1% 73.9%
[libx264 @ 0x5645c1301100] mb I  I16..4:  1.7% 54.3% 44.0%
[libx264 @ 0x5645c1301100] mb P  I16..4:  1.3% 27.1%  8.2%  P16..4: 28.2% 17.6% 15.5%  0.0%  0.0%    skip: 2.0%
[libx264 @ 0x5645c1301100] mb B  I16..4:  0.4%  7.7%  1.1%  B16..8: 24.7% 15.8%  4.4%  direct:20.2%  skip:25.8%  L0:30.3% L1:29.9% BI:39.8%
[libx264 @ 0x5645c1301100] 8x8 transform intra:74.7% inter:53.5%
[libx264 @ 0x5645c1301100] coded y,uvDC,uvAC intra: 94.9% 47.5% 4.3% inter: 45.3% 6.0% 0.0%
[libx264 @ 0x5645c1301100] i16 v,h,dc,p: 14% 19% 49% 18%
[libx264 @ 0x5645c1301100] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 11% 23%  4%  6% 10%  5%  7%  9%
[libx264 @ 0x5645c1301100] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 34% 15%  5%  5%  7%  5%  6%  7%
[libx264 @ 0x5645c1301100] i8c dc,h,v,p: 56% 12% 24%  8%
[libx264 @ 0x5645c1301100] Weighted P-Frames: Y:17.9% UV:7.9%
[libx264 @ 0x5645c1301100] kb/s:19375.53

The needed memory is about 27.5 GB

But when I use:
time nice -n 10 ionice -c3 ffmpeg -y -ss 48 -t 4 -i langeLijn1c.mkv -ss 0 -to 16 -i langeLijn1d.mkv -pix_fmt yuv420p -vcodec libx264 -crf 26 -acodec libmp3lame -qscale:a 9 -preset veryfast -filter_complex '
    [0:v][1:v]
                xfade=transition=slideup:
                duration=4:
                offset=0
                                                            [v01];
    [0:a][1:a]
                acrossfade=d=4
                                                            [a01];
    [v01]
                drawtext=                   box        = 1:                         boxborderw = 6:                         boxcolor   = black at 0.2:                 fontcolor  = white at 0.4:                 fontfile   = FreeSerifBold.ttf:         fontsize   = 32:                        text       = © 2023 Cecil Westerhof - Cecil at Decebal.nl
:             x          = ((main_w - text_w) / 2):   y          = main_h - (text_h * 2)    
                                                            [v02]' -map '[v02]' -map '[a01]' langeLijn1OtherSlideTemp/d.ts


I see the following in the log-file:
frame=   97 fps= 15 q=31.0 size=       0kB time=00:00:02.96 bitrate=   0.0kbits/s speed=0.472x
frame=  100 fps= 15 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.455x
frame=  100 fps= 14 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.423x
frame=  100 fps= 13 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.396x
frame=  100 fps= 12 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.372x
frame=  100 fps= 11 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.35x
frame=  100 fps= 11 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.331x
frame=  100 fps= 10 q=31.0 size=       0kB time=00:00:03.08 bitrate=   0.0kbits/s speed=0.314x
frame=  109 fps= 10 q=31.0 size=       0kB time=00:00:03.44 bitrate=   0.0kbits/s speed=0.331x
frame=  121 fps= 11 q=31.0 size=       0kB time=00:00:03.92 bitrate=   0.0kbits/s speed=0.36x
frame=  131 fps= 11 q=31.0 size=       0kB time=00:00:04.32 bitrate=   0.0kbits/s speed=0.379x

And the needed memory is about 2 GB.
What could be happening here?
What extra information should I give?

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof


More information about the ffmpeg-user mailing list