ffmpeg: Audioverlust beim Überlagern von Videos unterschiedlicher Länge

ffmpeg: Audioverlust beim Überlagern von Videos unterschiedlicher Länge

Ich habe zwei Videos unterschiedlicher Länge, jeweils mit Stereo-Audio, die ich mit ffmpeg übereinander gelegt habe. Den Ton der beiden Videos habe ich jeweils dem linken und rechten Kanal des Ausgabevideos zugewiesen.

Hier ist der Befehl, den ich verwende:

ffmpeg -i v1.mp4 -i v2.mp4 -filter_complex "amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3;blend=all_expr='A*0.5+B*0.5'" output.mp4

Das Problem ist, dass dadurch der Ton beider Eingangsvideos abgeschnitten wird, sobald die Wiedergabe des kürzeren Videos beendet ist, was ein dokumentiertes Verhalten des amergeFilters ist. Außerdem werden viele dieser Fehler ausgegeben -

Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory

-- obwohl es die Verarbeitung komplettiert. Ich habe versucht, den Amerge-Filter einfach wegzulassen

 ffmpeg -i v1.mp4 -i v2.mp4 -filter_complex "pan=stereo|c0<c0+c1|c1<c2+c3;blend=all_expr='A*0.5+B*0.5'" output.mp4

aber die Ausgabe davon enthält nicht den Ton des zweiten Videos. Wie würde man das richtig machen? Entschuldigen Sie die Anfängerfrage, ich habe erst diese Woche angefangen, ffmpeg zu verwenden.

Danke für alle Vorschläge.

[Bearbeiten] Hier ist die mit Fehlermeldungen gespickte Ausgabe für den oben genannten Befehl:

C:\Users\admin\Downloads\ffmpeg-20170110-f48b6b8-win64-static\ffmpeg-20170110-f4 8b6b8-win64-static\bin>ffmpeg -i v01.mp4 -i v02.mp4 -filter_complex "amerge=inpu ts=2,pan=stereo|c1<c0+c1|c0<c2+c3;blend=all_expr='A*0.5+B*0.5'" out1.mp4 > outpu t.txt ffmpeg version N-83034-gf48b6b8 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 5.4.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-dxva2 --enable-libmfx - -enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei 0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-li bbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --en able-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-li bopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --e nable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable -libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --e nable-lzma --enable-decklink --enable-zlib libavutil 55. 43.100 / 55. 43.100 libavcodec 57. 71.100 / 57. 71.100 libavformat 57. 62.100 / 57. 62.100 libavdevice 57. 2.100 / 57. 2.100 libavfilter 6. 68.100 / 6. 68.100 libswscale 4. 3.101 / 4. 3.101 libswresample 2. 4.100 / 2. 4.100 libpostproc 54. 2.100 / 54. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'v01.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.62.100 location-eng : +37.3789-005.9891/ location : +37.3789-005.9891/ Duration: 00:00:05.02, start: 0.000000, bitrate: 4760 kb/s Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 , 4642 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, flt p, 122 kb/s (default) Metadata: handler_name : SoundHandler Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'v02.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.62.100 Duration: 00:00:15.02, start: 0.000000, bitrate: 3766 kb/s Stream #1:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 , 3632 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, flt p, 126 kb/s (default) Metadata: handler_name : SoundHandler File 'out1.mp4' already exists. Overwrite ? [y/N] y [Parsed_amerge_0 @ 0000000002325e80] No channel layout for input 1 [Parsed_amerge_0 @ 0000000002325e80] Input channel layouts overlap: output layou t will be determined by the number of distinct input channels [libx264 @ 0000000001bff560] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0000000001bff560] profile High, level 4.0 [libx264 @ 0000000001bff560] 264 - core 148 r2744 b97ae06 - H.264/MPEG-4 AVC cod ec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=1 r ef=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_pski p=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 deci mate=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=2 5 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.6 0 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'out1.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.62.100 Stream #0:0: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, flt p, 128 kb/s (default) Metadata: encoder : Lavc57.71.100 aac Stream #0:1: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1 080, q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default) Metadata: encoder : Lavc57.71.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 Stream mapping: Stream #0:0 (h264) -> blend:top Stream #0:1 (aac) -> amerge:in0 Stream #1:0 (h264) -> blend:bottom Stream #1:1 (aac) -> amerge:in1 pan -> Stream #0:0 (aac) blend -> Stream #0:1 (libx264) Press [q] to stop, [?] for help frame= 5 fps=0.0 q=0.0 size= 0kB time=00:00:00.23 bitrate= 0.0kbits/s frame= 10 fps=9.5 q=0.0 size= 0kB time=00:00:00.38 bitrate= 0.0kbits/s frame= 16 fps=9.7 q=0.0 size= 0kB time=00:00:00.60 bitrate= 0.0kbits/s frame= 22 fps=9.8 q=0.0 size= 0kB time=00:00:00.79 bitrate= 0.0kbits/s frame= 28 fps=9.9 q=0.0 size= 0kB time=00:00:00.98 bitrate= 0.0kbits/s frame= 34 fps= 10 q=0.0 size= 0kB time=00:00:01.19 bitrate= 0.0kbits/s frame= 39 fps= 10 q=0.0 size= 0kB time=00:00:01.36 bitrate= 0.0kbits/s frame= 44 fps= 10 q=0.0 size= 0kB time=00:00:01.51 bitrate= 0.0kbits/s frame= 46 fps=9.0 q=0.0 size= 0kB time=00:00:01.60 bitrate= 0.0kbits/s frame= 51 fps=9.0 q=29.0 size= 42kB time=00:00:01.75 bitrate= 197.4kbits/ frame= 55 fps=8.8 q=29.0 size= 147kB time=00:00:01.90 bitrate= 633.2kbits/ frame= 59 fps=8.7 q=29.0 size= 220kB time=00:00:02.02 bitrate= 888.5kbits/ frame= 63 fps=8.5 q=29.0 size= 288kB time=00:00:02.15 bitrate=1092.1kbits/ frame= 67 fps=8.4 q=29.0 size= 360kB time=00:00:02.28 bitrate=1289.4kbits/ frame= 71 fps=8.3 q=29.0 size= 435kB time=00:00:02.43 bitrate=1465.1kbits/ frame= 75 fps=8.2 q=29.0 size= 514kB time=00:00:02.56 bitrate=1642.1kbits/ frame= 79 fps=8.1 q=29.0 size= 577kB time=00:00:02.69 bitrate=1757.4kbits/ frame= 83 fps=8.1 q=29.0 size= 630kB time=00:00:02.81 bitrate=1831.7kbits/ frame= 87 fps=8.0 q=29.0 size= 695kB time=00:00:02.96 bitrate=1917.5kbits/ frame= 91 fps=8.0 q=29.0 size= 760kB time=00:00:03.09 bitrate=2011.4kbits/ frame= 95 fps=8.0 q=29.0 size= 822kB time=00:00:03.22 bitrate=2088.1kbits/ frame= 99 fps=7.9 q=29.0 size= 890kB time=00:00:03.37 bitrate=2161.8kbits/ frame= 103 fps=7.9 q=29.0 size= 968kB time=00:00:03.50 bitrate=2264.7kbits/ frame= 107 fps=7.8 q=29.0 size= 1053kB time=00:00:03.62 bitrate=2376.7kbits/ frame= 111 fps=7.8 q=29.0 size= 1124kB time=00:00:03.75 bitrate=2450.1kbits/ frame= 115 fps=7.8 q=29.0 size= 1192kB time=00:00:03.90 bitrate=2499.5kbits/ frame= 119 fps=7.8 q=29.0 size= 1251kB time=00:00:04.03 bitrate=2540.7kbits/ frame= 123 fps=7.8 q=29.0 size= 1308kB time=00:00:04.16 bitrate=2573.6kbits/ frame= 127 fps=7.8 q=29.0 size= 1365kB time=00:00:04.29 bitrate=2606.3kbits/ frame= 131 fps=7.7 q=29.0 size= 1432kB time=00:00:04.44 bitrate=2642.3kbits/ frame= 135 fps=7.7 q=29.0 size= 1488kB time=00:00:04.56 bitrate=2667.8kbits/ frame= 139 fps=7.7 q=29.0 size= 1542kB time=00:00:04.69 bitrate=2690.3kbits/ frame= 143 fps=7.7 q=29.0 size= 1595kB time=00:00:04.82 bitrate=2708.7kbits/ frame= 147 fps=7.7 q=29.0 size= 1645kB time=00:00:04.97 bitrate=2709.7kbits/ frame= 151 fps=7.7 q=29.0 size= 1698kB time=00:00:04.97 bitrate=2797.2kbits/ frame= 155 fps=7.7 q=29.0 size= 1756kB time=00:00:04.97 bitrate=2892.4kbits/ frame= 160 fps=7.6 q=29.0 size= 1833kB time=00:00:04.97 bitrate=3019.7kbits/ frame= 165 fps=7.7 q=29.0 size= 1902kB time=00:00:04.97 bitrate=3132.8kbits/ frame= 169 fps=7.7 q=29.0 size= 1954kB time=00:00:04.97 bitrate=3219.1kbits/ frame= 173 fps=7.7 q=29.0 size= 2006kB time=00:00:04.97 bitrate=3303.5kbits/ frame= 178 fps=7.7 q=29.0 size= 2066kB time=00:00:04.97 bitrate=3402.7kbits/ frame= 182 fps=7.7 q=29.0 size= 2121kB time=00:00:04.97 bitrate=3493.2kbits/ frame= 187 fps=7.7 q=29.0 size= 2187kB time=00:00:04.97 bitrate=3601.8kbits/ Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory frame= 191 fps=7.7 q=29.0 size= 2262kB time=00:00:04.97 bitrate=3725.2kbits/ Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory frame= 195 fps=7.6 q=29.0 size= 2344kB time=00:00:04.97 bitrate=3860.9kbits/ Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory ..... Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory frame= 436 fps=7.9 q=29.0 size= 2466kB time=00:00:12.77 bitrate=1580.9kbits/ Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory frame= 440 fps=7.9 q=29.0 size= 2466kB time=00:00:12.91 bitrate=1564.5kbits/ Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory Failed to inject frame into filter network: Cannot allocate memory Error while decoding stream #1:1: Cannot allocate memory frame= 446 fps=8.0 q=29.0 size= 2466kB time=00:00:13.11 bitrate=1540.7kbits/ frame= 450 fps=8.0 q=29.0 size= 2466kB time=00:00:13.24 bitrate=1525.1kbits/ frame= 450 fps=7.7 q=-1.0 Lsize= 5298kB time=00:00:14.91 bitrate=2910.2kbits /s speed=0.255x video:5213kB audio:76kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.194365% [aac @ 0000000001f5bb20] Qavg: 5159.816 [libx264 @ 0000000001cd03e0] frame I:2 Avg QP:20.68 size: 76647 [libx264 @ 0000000001cd03e0] frame P:113 Avg QP:21.48 size: 25608 [libx264 @ 0000000001cd03e0] frame B:335 Avg QP:24.65 size: 6836 [libx264 @ 0000000001cd03e0] consecutive B-frames: 0.7% 0.0% 0.7% 98.7% [libx264 @ 0000000001cd03e0] mb I I16..4: 21.3% 66.8% 11.9% [libx264 @ 0000000001cd03e0] mb P I16..4: 4.0% 5.3% 0.5% P16..4: 45.0% 11.2 % 5.0% 0.0% 0.0% skip:29.1% [libx264 @ 0000000001cd03e0] mb B I16..4: 0.6% 0.6% 0.0% B16..8: 35.6% 2.3 % 0.2% direct: 1.9% skip:58.7% L0:44.8% L1:52.0% BI: 3.2% [libx264 @ 0000000001cd03e0] 8x8 transform intra:54.6% inter:85.5% [libx264 @ 0000000001cd03e0] coded y,uvDC,uvAC intra: 30.3% 42.6% 4.6% inter: 7. 5% 12.1% 0.0% [libx264 @ 0000000001cd03e0] i16 v,h,dc,p: 32% 49% 8% 11% [libx264 @ 0000000001cd03e0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 23% 33% 3% 2% 2% 2% 3% 4% [libx264 @ 0000000001cd03e0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 29% 14% 3% 4% 4% 4% 3% 4% [libx264 @ 0000000001cd03e0] i8c dc,h,v,p: 48% 31% 18% 3% [libx264 @ 0000000001cd03e0] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 0000000001cd03e0] ref P L0: 54.3% 9.2% 25.5% 11.0% [libx264 @ 0000000001cd03e0] ref B L0: 80.4% 15.0% 4.6% [libx264 @ 0000000001cd03e0] ref B L1: 91.3% 8.7% [libx264 @ 0000000001cd03e0] kb/s:2843.59

Antwort1

Versuchen Sie es mit dem amixFilter, der standardmäßig mit der längsten Dauer endet:

ffmpeg -i v1.mp4 -i v2.mp4 -filter_complex "amix;blend=all_expr='A*0.5+B*0.5'" output.mp4

Sie können den kürzeren Ton auch auffüllen, wenn Sie Ihren aktuellen Befehl verwenden. Angenommen, v1 ist das kürzere Video:

ffmpeg -i v1.mp4 -i v2.mp4 -filter_complex "[0]apad[a];[a][1]amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3;blend=all_expr='A*0.5+B*0.5'" output.mp4

verwandte Informationen