FFmpeg: Convierte Estéreo a Mono (Promedio, Solo Izquierda, Solo Derecha)

El comando más simple y robusto para downmix estéreo → mono en FFmpeg:

ffmpeg -i input.wav -ac 1 output.wav

Qué Hace `-ac 1`

  • Establece los canales de salida = 1.
  • Comportamiento predeterminado: Promedio (suma/2) de Izquierda + Derecha → Mono. Preserva la imagen central, evita aumento de 6 dB.
  • Funciona en cualquier formato de entrada (WAV, MP3, FLAC, AAC, M4A, MOV, MP4).
  • El contenedor de salida coincide con la extensión (.wav, .mp3, .flac, .m4a).

Variantes y Opciones

Conservar Solo el Canal Izquierdo (Descartar Derecha)

ffmpeg -i input.wav -map_channel 0.0.0 -ac 1 output_left.wav

Conservar Solo el Canal Derecho (Descartar Izquierda)

ffmpeg -i input.wav -map_channel 0.0.1 -ac 1 output_right.wav

Sintaxis de Map Channel

-map_channel <índice_archivo_entrada>.<índice_flujo_entrada>.<índice_canal_entrada>

  • `0.0.0` = Archivo 0, Flujo 0 (generalmente audio), Canal 0 (Izquierda).
  • `0.0.1` = Archivo 0, Flujo 0, Canal 1 (Derecha).
  • Usa `ffmpeg -i input.wav` para ver los índices de flujo/canal.

Mezcla Personalizada (p. ej., Izquierda + 0.5×Derecha)

ffmpeg -i input.wav -af "pan=mono|c0=1.0*c0+0.5*c1" output_custom.wav
  • `pan=mono` → 1 canal de salida.
  • `c0` = canal de entrada 0 (L), `c1` = canal de entrada 1 (R). Coeficientes = ganancia.

Re-muestreo de Alta Calidad + Mono (para Producción)

ffmpeg -i input.wav -af "aresample=48000:resampler=soxr:precision=28,pan=mono|c0=0.5*c0+0.5*c1" -c:a pcm_s24le output_mono_48k_24bit.wav
  • `aresample=48000` → fuerza 48 kHz (estándar de video).
  • `soxr` (Resamplador SoX) = máxima calidad.
  • `pcm_s24le` = PCM WAV de 24 bits (grado masterización).

Convertir por Lotes una Carpeta (Bash / PowerShell)

# Bash (Linux/macOS/WSL)
for f in *.wav; do ffmpeg -i "$f" -ac 1 "mono_${f}"; done
# PowerShell (Windows)
Get-ChildItem *.wav | ForEach-Object { ffmpeg -i $_.Name -ac 1 "mono_$($_.Name)" }

Prueba Rápida y Verificación

# Verificar canales
ffprobe -v error -select_streams a -show_entries stream=channels -of csv=p=0 output.wav
# Debería retornar: 1
# Escuchar
ffplay -nodisp -autoexit output.wav

Regla general: Usa `-ac 1` para el 99% de los casos (diálogos, stems de música, podcasts). Usa `-map_channel` solo para aislamiento forense (p. ej., lavalier en Izquierda, micrófono de punta en Derecha). Siempre verifica con auriculares.