Questão Junte 2 arquivos mp3 com um volume menor do que outro


Eu tenho 2 arquivos mp3 (a.mp3 e b.mp3) e eu quero sobrepô-los usando o ffmpeg. Como sobrepô-los de tal forma que o volume de a.mp3 é baixo e o volume b.mp3 é alto, de modo que parece que a.mp3 está rodando em background de b.mp3?


1


origem


Que tal usar sourceforge.net/projects/audacity (ou qualquer outra ferramenta de edição de som)? Você está tentando automatizar a tarefa? - Scott Rhee
Por favor, mostre a saída completa do console ffmpeg -i a.mp3 -i b.mp3. A informação será útil para fornecer uma resposta. - LordNeckbeard


Respostas:


Você pode alterar o volume dos fluxos de áudio usando o volume filtro. No entanto, você precisará recodificar o áudio quando usar um filtro. Se você não quer perder a qualidade, pode sempre recodificar para um formato descompactado (usando -c:a pcm_s16le, mas o tamanho dos seus arquivos será maior. Alternativamente, você pode compactar o arquivo ainda mais e deixá-lo no formato mp3 - mas naturalmente a qualidade será reduzida ...

Além disso, você provavelmente vai querer brincar com o quão alto você quer cada fluxo, mas aqui está um exemplo que leva o seu a.mp3 arquivo e faz com que seja 25% do volume original, deixando b.mp3só volume. Neste exemplo, estamos indo para a rota de áudio não compactada e indo para um contêiner .wav.

ffmpeg -i a.mp3 -i b.mp3 -filter_complex "[0:a]volume=.25[A];[1:a][A]amerge[out]" -map [out] -c:a pcm_s16le out.wav

0



Apenas observando que, se as entradas forem estéreo, isso criará uma saída de 4 canais (uma das razões pelas quais pedi a saída do console). Adicionando -ac 2 irá torná-lo uma saída estéreo, se desejar. - LordNeckbeard