Fusionnez deux canaux audio (stéréo) en un (mono) sur GSM6.10 à l'aide de FFMPEG

27

Je voudrais savoir s'il est possible de fusionner l'audio stéréo en mono sur un fichier audio GSM6.10 en utilisant FFMPEG. Si tel est le cas, veuillez fournir la commande pour y parvenir.
Sinon, est-il possible de convertir GSM6.10 en WAV PCM avec FFMPEG? Je pourrais alors fusionner les canaux sur le WAV PCM.

S'il existe un autre outil gratuit qui peut le faire, je peux également l'essayer.

Ron Harlev
la source

Réponses:

42

La façon de "mixage" de stéréo à mono dans n'importe quel fichier pris en charge dans ffmpeg est comme suit:

ffmpeg -i file.ext -ac 1 file_mono.ext

Le bit "-ac 1" indique à ffmpeg de ne sortir qu'un seul canal audio, c'est-à-dire mono. Par défaut, cette opération préservera votre format de fichier mais rétablira votre débit binaire à la valeur par défaut ffmpeg de 64 Ko. Si vous voulez un débit binaire plus élevé, vous pouvez faire:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

... en remplaçant 192k par votre débit préféré.

Notez que votre installation de ffmpeg doit prendre en charge votre codec GSM particulier pour que cela fonctionne correctement. Je sais que certains fichiers audio codés GSM sont pris en charge dans ffmpeg via libgsm, mais je n'ai jamais traité les fichiers GSM moi-même. Cependant, j'ai réussi à convertir d'autres types de fichiers (MP3) en mono sans accroc.

Ryan Tate
la source
3
Est-ce vraiment un mixage, ou simplement une suppression de chaînes?
Jonny
De la documentation du filtre 'pan': "Notez que ffmpeg intègre un système de down-mix (et up-mix) par défaut qui devrait être préféré (voir l'option" -ac ") sauf si vous avez des besoins très spécifiques."
OrangeDog
Les fichiers d'entrée et de sortie doivent être uniquement des fichiers audio. L'entrée ne peut pas être vidéo.
Kevin
1
Manipulation des canaux audio "Mixez un seul flux stéréo vers un flux mono. Les deux canaux du flux stéréo seront sous-mélangés dans le flux:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra
@Kevin - l'entrée peut être un fichier vidéo, je viens de le vérifier, (avec ou sans -vn)
Berry Tsakala
7

La réponse ci-dessus fonctionne dans le cas où vous souhaitez toujours convertir entre les formats, mais pour les fichiers longs qui peuvent prendre beaucoup de temps. Ou peut-être que vous ne voulez pas convertir à nouveau, dégradant la qualité, et que vous souhaitiez simplement diffuser la copie en continu. Utiliser -codec: a et -ac 1 en même temps ne fonctionne pas, mais selon la documentation du filtre de panoramique ffmpeg, si certaines conditions sont remplies (comme si vous ne réglez pas les niveaux des canaux ou si vous ne mélangez pas deux canaux en un) , il reconnaîtra ce cas et signalera: "Mappage de canal pur détecté", et effectuera une copie de flux, ce qui est beaucoup plus rapide.

Par exemple: Pour créer un fichier stéréo mono en utilisant simplement le canal gauche et en copiant simplement le flux vidéo, procédez comme suit:

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext
mondaugen
la source
0

Je sais que c'est possible avec sox .... j'utilise sox pour la manipulation des canaux, kdenlive et audacity pour un montage doux et ffmpeg pour le remux. juste pour vous faire savoir ce qui a bien fonctionné pour moi dans le passé.

RobotHumains
la source
0

Pour préserver la vidéo, j'ai utilisé une combinaison de deux réponses ci-dessus:

ffmpeg -i infile -codec:v copy -ac 1 -ab 192k outfile

Cela a produit une solution suffisante pour moi.

Aigle
la source