ffmpeg: объединить два или три аудио в один, уменьшив громкость другого

842
somya bhargava

Хотите объединить несколько аудио файлов, например:

1) один длинный аудиофайл, который будет использоваться в качестве фонового звука. 2) некоторые аудиофайлы, которые будут заменяться через определенные интервалы, например, через 10 секунд после первого.

Таким образом, конечный выходной сигнал - аудио-1, аудио-2 с 60 с, начиная с 10 с до 20 с, аудио-1 с громкостью 0,1.

2

1 ответ на вопрос

2
Gyan

For the scenario mentioned in the question, use

ffmpeg -i audio1 -i audio2 -filter_complex \ "[0]atrim=0:10[s1]; [0]atrim=10:20,asetpts=N/SR/TB,volume=0.1[s2]; [0]atrim=20,asetpts=N/SR/TB[s3]; [1]atrim=duration=10,adelay=10000|10000[v2]; [s1][s2][s3]concat=n=3:v=0:a=1[b]; [b][v2]amix[a]" -map [a] mixed.mp3 

Usually, you'd want to use the sidechaincompress filter to adaptively reduce the volume of the music stream by analyzing the volume of the foreground audio.

Есть ли способ обнаружить, если другой звук тишина (использовать silencedetect), а затем только изменить громкость somya bhargava 8 лет назад 0
Вот что делает sidechaincompress: изменяет объем одного потока в соответствии с объемом другого эталонного потока. Gyan 8 лет назад 0