Я пытаюсь объединить несколько (доказательство концепции: 2) mp3-файлов с помощью ffmpeg и фильтра concat с помощью следующей команды:

ffmpeg -i "file1.mp3" -i "file2.mp3" -filter_complex [0:a:0][1:a:0]concat=n=2:a=1[outa] -map [outa] out.mp3

Полагаю, ffmpeg успешно читает оба ввода:

Input #0, mp3 [...]
Metadata: [...]
Duration: 00:00:13.40, start: 0.000000, bitrate: 423 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
    Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 650x677 [SAR 72:72 DAR 650:677], 90k tbr, 90k tbn, 90k tbc
Metadata:
      comment         : Other
[mp3 @ 0x7fadbc81a000] Estimating duration from bitrate, this may be inaccurate
Input #1, mp3, [...]
Metadata: [...]
Duration: 00:06:58.64, start: 0.000000, bitrate: 199 kb/s
    Stream #1:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
    Stream #1:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 650x677 [SAR 72:72 DAR 650:677], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Other

Но тогда терпит неудачу с:

Stream specifier ':a:0' in filtergraph description [0:a:0][1:a:0]concat=n=2:a=1[outa] matches no streams.

Есть идеи? Кажется, Ffmpeg читает оба потока, поэтому я не знаю, в чем дело. Я также попытался [0:0][1:0] вместо [0:a:0][1:a:0] , выдав то же сообщение об ошибке.

1 ответ1

1

Фильтр concat должен установить три переменные, n, v и a. Значение по умолчанию v равно 1, но вам нужно установить его на 0. Итак, concat=n=2:v=0:a=1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .