Подтвердить что ты не робот

Как наложить/уменьшить громкость двух аудиофайлов с помощью ffmpeg

Могу ли я накладывать/микшировать два аудиофайла в один выходной файл mp3 с помощью ffmpeg?

4b9b3361

Ответ 1

стерео + стерео → стерео

Нормальное микширование

Normal downmix

Используйте фильтр amix:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3

Или фильтр слияния:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amerge=inputs=2 -ac 2 output.mp3

Микшируйте каждый вход в определенный выходной канал

Downmix each input into specific output channel

Используйте фильтры Amerge и Pan:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex "amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3" output.mp3

моно + моно → стерео

mono + mono → stereo

Используйте фильтр объединения:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex join=inputs=2:channel_layout=stereo output.mp3

Или дополнить

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amerge=inputs=2 output.mp3

моно + моно → моно

mono + mono → mono

Используйте фильтр amix:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3

Больше информации и примеров

Смотрите FFmpeg Wiki: аудио каналы

Ответ 2

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

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

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

Ответ 3

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

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

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

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

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

  • входы: количество входов. Если не указано, по умолчанию используется значение 2.

  • Продолжительность: как определить конец потока.

    • самый длинный: продолжительность самого длинного ввода. (дефолт)

    • кратчайший: продолжительность самого короткого ввода.

    • первый: продолжительность первого ввода.

  • 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 часть -codec:a libmp3lame -q:a 0.

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

Ответ 4

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

Ответ 5

С Bash

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

Пример

Ответ 6

Для объединения двух аудио файлов с разной громкостью и разной продолжительностью будет работать следующая команда:

ffmpeg -y -i audio1.mp3 -i audio2.mp3 -filter_complex "[0:0]volume=0.09[a];[1:0]volume=1.8[b];[a][b]amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3

Здесь продолжительность может быть изменена на самую длинную или самую короткую, вы также можете изменить уровни громкости в соответствии с вашими потребностями.

Если вы хотите добавить фоновую музыку к какому-либо голосу, используйте следующую команду, так как в промежутках музыка станет громкой автоматически:

ffmpeg -i bgmusic.mp3 -i audio.mp3 -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress=threshold=0.003:ratio=20[bg]; [bg][mix]amerge[final]" -map [final] final.mp3

В этом пороге есть значение, значение которого будет определять, насколько громким должен быть звук, чем меньше порог, тем больше будет звук. Отношение дает степень сжатия другого звука, чем больше отношение, тем больше сжатие.