Puis-je superposer/mélanger deux fichiers mp3 audio en un seul fichier de sortie mp3 à l'aide de ffmpeg?
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
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
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
Utilisez le filtre amix :
ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3
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.
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
S'ils sont de longueur différente, vous pouvez utiliser apad pour ajouter un son silencieux au plus court
Avec Bash
set 'amovie=a.mp3 [gg]; amovie=b.mp3 [hh]; [gg][hh] amerge'
ffmpeg -f lavfi -i "$1" -q 0 c.mp3
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.