ffmpeg - отображение нескольких аудиофайлов на видео [дубликат]

Правильный способ передачи ссылки функции - использовать обратные вызовы.

names.forEach(name => setTimeout(function() {
    printer(name);
}, 1000));

обратные вызовы содержат ссылку на функцию.

setTimeout(callbackFunction, milliseconds);
25
задан Steven Penny 24 January 2013 в 22:55
поделиться

5 ответов

Вы можете сделать это с помощью ffmpeg с помощью фильтра amerge:

ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3
33
ответ дан LordNeckbeard 22 August 2018 в 07:49
поделиться
  • 1
    Спасибо, это действительно помогло и сделано без ошибок. Но мои аудио файлы различаются по длине. Есть ли у вас идея, как создать выходной файл на максимальную длину входных файлов? – Faisal 28 January 2013 в 15:51
  • 2
    пожалуйста, вы можете привести пример, поставив поддельный путь и значение. Будет оценено – Ahmad Arslan 9 July 2014 в 07:52
  • 3
    Будет ли это так? {& quot; ffmpeg "," -i ", Audio," -i ", Audio2," -фильтр_комплекс " , "amerge", "-c: a", "libmp3lame", "-q: a", "4" , FilenameVideoReplace}; – Ahmad Arslan 9 July 2014 в 08:02
  • 4
    @LordNeckbeard: ваш код не работает для слияния двух аудиофайлов. – user 4 March 2015 в 08:18
  • 5
    @ArslanAhmad Без вашей фактической команды и полного вывода консоли я могу только предположить, что ваш ffmpeg не был настроен с --enable-libmp3lame и поэтому не может использовать этот кодер. – LordNeckbeard 24 March 2016 в 17:38

Если они имеют разную длину, вы можете использовать apad , чтобы добавить тихий звук к кратчайшему

2
ответ дан Chung Xa 22 August 2018 в 07:49
поделиться

Проверьте это:

ffmpeg -y -i ad_sound/whistle.mp3 -i ad_sound/4s.wav -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame ad_sound/outputnow.mp3

Я думаю, что это поможет.

12
ответ дан MLavoie 22 August 2018 в 07:49
поделиться
  • 1
    это работало лучше для меня, так как заботиться о различиях в длине .. вот так я смешивал три звука: ffmpeg -i flute_long.ogg -i gallop.ogg -i wind.ogg -filter_complex & quot; [0: 0] [ 1: 0] amix = input = 3: duration = longest & quot; main.ogg – cesarpachon 26 October 2016 в 21:31
  • 2
    В любом случае, чтобы отрегулировать громкость на одном из входных файлов, скажем, на 20%? – chovy 21 March 2017 в 01:20
  • 3
    @chovy ffmpeg -y -i A.mp3 -i B.mp3 -filter_complex & quot; [0: 0] объем = 0,2 [a]; [1: 0] объем = 0,5 [b]; [a] [b] amix = входы = 2: длительность = длинная & Quot; -c: a libmp3lame output1.mp3 – dastan 15 March 2018 в 11:26

С Bash

set 'amovie=a.mp3 [gg]; amovie=b.mp3 [hh]; [gg][hh] amerge'
ffmpeg -f lavfi -i "$1" -q 0 c.mp3

Пример

1
ответ дан Steven Penny 22 August 2018 в 07:49
поделиться
  • 1
    Спасибо, это помогло. что, если длина обоих файлов отличается? – Faisal 28 January 2013 в 15:45

Фильтр amix помогает смешивать несколько аудиовходов в один выход.

Если вы выполните следующую команду:

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT

Эта команда будет смешивать 3 входных звука потоки (я использовал два mp3-файла в приведенном ниже примере) в один вывод с той же длительностью, что и первый вход, и время перехода от выключения 3 секунды.

Фильтр amix принимает следующие параметры: :

  • входы: количество входов. Если не указано, значение по умолчанию равно 2.
  • duration: как определить конец потока. longest : длительность самого длинного входа. (по умолчанию) shortest : длительность самого короткого входа. first : длительность первого ввода.
  • dropout_transition: время перехода в секундах для ренормировки тома при завершении входного потока. Значение по умолчанию - 2 секунды.

Например, я запустил следующую команду в Ubuntu: версия FFMPEG: 3.2.1-1 UBUNTU 16.04.1

ffmpeg -i background.mp3 -i bSound.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -codec:a libmp3lame -q:a 0 OUTPUT.mp3

-codec:a libmp3lame -q:a 0 использовался для установки переменной скорости передачи битов. Помните, что вам необходимо установить библиотеку libmp3lame, если это необходимо. Но он будет работать даже без части -codec:a libmp3lame -q:a 0.

Ссылка: https://ffmpeg.org/ffmpeg-filters.html#amix

8
ответ дан Teocci 22 August 2018 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: