Combine dos canales de audio (estéreo) en uno (mono) en GSM6.10 usando FFMPEG

27

Me gustaría saber si es posible fusionar audio estéreo en mono en un archivo de audio GSM6.10 usando FFMPEG. Si es así, proporcione el comando para lograr esto.
De lo contrario, ¿es posible convertir GSM6.10 a PCM WAV con FFMPEG? Entonces podría fusionar los canales en el PCM WAV.

Si hay otra herramienta gratuita que puede hacer esto, también puedo probarlo.

Ron Harlev
fuente

Respuestas:

42

La forma de "mezclar" de estéreo a mono en cualquier archivo compatible en ffmpeg es así:

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

El bit "-ac 1" indica a ffmpeg que solo envíe 1 canal de audio, es decir, mono. De forma predeterminada, esta operación conservará el formato de su archivo, pero revertirá su velocidad de bits al valor predeterminado de ffmpeg de 64kbs. Si desea una tasa de bits más alta, puede hacer:

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

... reemplazando 192k con su bitrate preferido.

Tenga en cuenta que su instalación de ffmpeg debe ser compatible con su códec GSM particular para que esto funcione correctamente. Sé que parte del audio codificado GSM es compatible con ffmpeg a través de libgsm, pero nunca he tratado con archivos GSM. Sin embargo, he convertido con éxito otros tipos de archivos (MP3) a mono sin problemas.

Ryan Tate
fuente
3
¿Esto realmente está mezclando, o simplemente cayendo canales?
Jonny
De la documentación del filtro 'pan': "Tenga en cuenta que ffmpeg integra un sistema predeterminado de mezcla descendente (y mezcla ascendente) que debería preferirse (vea la opción" -ac ") a menos que tenga necesidades muy específicas".
Deja de dañar a Monica el
Los archivos de entrada y salida deben ser solo archivos de audio. La entrada no puede ser video.
Kevin
1
Manipulación de canales de audio "Mezcle una sola transmisión estéreo en una transmisión mono. Ambos canales de la transmisión estéreo se mezclarán en la transmisión:"ffmpeg -i stereo.flac -ac 1 mono.flac
Joel Purra
@Kevin - la entrada puede ser un archivo de video, acabo de verificar, (con o sin -vn)
Berry Tsakala
7

La respuesta anterior funciona en el caso de que aún desee convertir entre formatos, pero para archivos largos que pueden llevar mucho tiempo. O tal vez no desee convertir una vez más, degradando la calidad, por lo que es posible que solo desee transmitir la copia. El uso de -codec: a y -ac 1 al mismo tiempo no funciona, pero de acuerdo con la documentación del filtro de desplazamiento ffmpeg, si se cumplen ciertas condiciones (como no ajustar los niveles de canales o mezclar dos canales en uno) , reconocerá este caso e informará: "Se detectó la asignación de canal puro" y realizará una copia de flujo, que es mucho más rápido.

Por ejemplo: para hacer que un archivo estéreo sea mono con solo usar el canal izquierdo y copiar el flujo de video, haga lo siguiente:

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

Sé que es posible con sox ... uso sox para la manipulación de canales, kdenlive y audacity para una edición suave, y ffmpeg para remuxing. solo para hacerle saber lo que me ha funcionado bien en el pasado.

RobotHumanos
fuente
0

Para preservar el video, utilicé una combinación de dos respuestas anteriores:

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

Eso produjo una solución suficiente para mí.

Águila
fuente