web-dev-qa-db-fra.com

Comment superposer / mélanger deux fichiers audio à l'aide de ffmpeg

Puis-je superposer/mélanger deux fichiers mp3 audio en un seul fichier de sortie mp3 à l'aide de ffmpeg?

40
Faisal

stéréo + stéréo → stéréo

Downmix normal

Normal downmix

Utilisez le filtre amix :

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

Ou le filtre amerge :

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

Remixer chaque entrée dans un canal de sortie spécifique

Downmix each input into specific output channel

Utilisez les filtres amerge et 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 → stéréo

mono + mono → stereo

Utilisez le filtre join :

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

Ou amerge :

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

mono + mono → mono

mono + mono → mono

Utilisez le filtre amix :

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

Plus d'informations et d'exemples

Voir Wiki FFmpeg: canaux audio

57
llogan

Regarde ça:

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

Je pense que ça aidera.

18
UI Developer

Le filtre amix permet de mélanger plusieurs entrées audio en une seule sortie.

Si vous exécutez la commande suivante:

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

Cette commande mélangera 3 flux audio d'entrée (j'ai utilisé deux fichiers mp3, dans l'exemple ci-dessous) en une seule sortie avec la même durée que la première entrée et un temps de transition de décrochage de 3 secondes.

Le filtre amix accepte les paramètres suivants:

  • entrées : Le nombre d'entrées. S'il n'est pas spécifié, il vaut par défaut 2.

  • duration : comment déterminer la fin du flux.

    • le plus long: La durée de l'entrée la plus longue. (défaut)

    • le plus court: La durée de l'entrée la plus courte.

    • premier: La durée de la première entrée.

  • dropout_transition : Le temps de transition, en secondes, pour la renormalisation du volume à la fin d'un flux d'entrée. La valeur par défaut est 2 secondes.

Par exemple, j'ai exécuté la commande suivante dans Ubuntu: Version 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 a été utilisé pour définir un débit binaire variable. N'oubliez pas que vous devez installer la bibliothèque libmp3lame, si nécessaire. Mais cela fonctionnera même sans le -codec:a libmp3lame -q:a 0 partie.

Référence: https://ffmpeg.org/ffmpeg-filters.html#amix

13
Ehsan

S'ils sont de longueur différente, vous pouvez utiliser apad pour ajouter un son silencieux au plus court

2
Chung Xa

Avec Bash

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

Exemple

1
Steven Penny

Pour fusionner deux fichiers audio avec volumes différents et durée différente la commande suivante fonctionnera:

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

Ici, la durée peut être changée en le plus long ou le plus court, vous pouvez également changer le niveaux de volume selon votre besoin.

Si vous cherchez à ajouter de la musique de fond à une voix utilisez la commande suivante comme dans le les intervalles la musique deviendra automatiquement forte:

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

Dans ce seuil, il y a quelque chose dont la valeur décidera du niveau sonore de l'audio, moins le seuil sera élevé, plus l'audio sera. Le ratio donne la quantité de compression de l'autre audio, plus le ratio est élevé, plus la compression est.

1
Sheetansh kumar