Если я пытаюсь объединить два видеофайла mp4 с -filter_complex
помощью команды:
ffmpeg -i a.mp4 -i b.mp4 -filter_complex \
"[0:1] [0:0] [1:1] [1:0] concat=n=2:v=1:a=1 [v] [a]" \
-map [v] -map [a] -y testfull.mp4
Это работает нормально, но если я попробую подобное с аудио файлами, такими как:
ffmpeg -i a.mp3 -i b.mp3 -filter_complex \
"[0:1] [0:0] [1:1] [1:0] concat=n=2:a=1 [a]" \
-map [a] -y testfull.mp3
Ошибка возникает:
Input #1, mp3, from 'b.mp3': Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isomavc1mp42
creation_time : 2010-12-13 21:15:11
encoder : Lavf53.4.0 Duration: 00:02:01.61, start: 0.000000, bitrate: 64 kb/s
Stream #1:0: Audio: mp3, 8000 Hz, stereo, s16p, 64 kb/s
Stream specifier ':1' in filtergraph description [0:1] [0:0] [1:1] [1:0] concat= n=2:a=1 [a] matches no streams.
Если я изменяю -filter_complex
аргумент и запускаю команду как:
ffmpeg -i a.mp3 -i b.mp3 -filter_complex \
"concat=n=2:a=1 [a]" -map [a] -y testfull.mp3
Возникает следующая ошибка
Input #1, mp3, from 'b.mp3': Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isomavc1mp42
creation_time : 2010-12-13 21:15:11
encoder : Lavf53.4.0 Duration: 00:02:01.61, start: 0.000000, bitrate: 64 kb/s
Stream #1:0: Audio: mp3, 8000 Hz, stereo, s16p, 64 kb/s
Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_concat_ 0
Может кто-нибудь помочь мне, как я могу объединить два аудио-файла с помощью последних ffmpeg
сборок, возможно, с -filter_complex
.
Обновление: Хорошо, решил мою проблему с этой ffmpeg
командой:
ffmpeg -i "concat:a.mp3|b.mp3" -c copy output.mp3
Вы должны указать фильтру concat, что видео не будет:
v=0
вам также не нужно обращаться к видеопотоку[0:0]
[1:0]
, поэтому команда будет выглядеть так:источник
[0:1][1:1]
не удастся. Используйте[0:a][1:a]
также, вы не можете копировать поток при использовании фильтров, поэтому это будет-c:a mp3
n - количество сегментов потока, а не входных файлов
из конкат документации
Последние несколько дней я боролся с этим и перечитывал этот вопрос и его ответы снова и снова. я объединял последовательность PNG (вход 0) с файлом WAV (вход 1) и продолжал получать ту же ошибку
После четырнадцати испытаний и неудач, я упал на n = 1 (то есть один желаемый выходной поток) с v = 1: a = 1 ... то есть один поток видео и один входной аудиосигнал. Также как ОДИН СЕГМЕНТ, состоящий из видео с входа 0 и аудио с входа 1 и тада это работало просто отлично.
полный cmdline
источник
Вы должны смешать аудио потоки:
источник