¿Qué es FLAC?
FLAC — Free Lossless Audio Codec (Códec de Audio Lossless Libre) — es un formato de audio de código abierto y libre de regalías que comprime datos de audio sin pérdida de calidad. Creado por Josh Coalson en 2001 y ahora mantenido por la Xiph.Org Foundation, FLAC es el estándar de oro para el archivado de música audiófila, streaming de alta fidelidad y cadenas de masterización de audio profesional.
A diferencia de los formatos con pérdidas (MP3, AAC, OGG Vorbis, Opus) que descartan permanentemente datos de audio para lograr compresión, FLAC garantiza que la salida decodificada es bit-a-bit idéntica a la fuente PCM sin comprimir original.
Cómo Funciona la Compresión FLAC
FLAC usa un modelo de predicción-residual:
-
Predicción Lineal (LPC): el codificador modela cada muestra de audio como combinación lineal de muestras anteriores, capturando el 95-99% de la energía de la señal.
-
Cálculo de residual: la muestra real menos la predicha deja un pequeño residual que representa variación impredecible.
-
Codificación de entropía Rice/Golomb: los residuales se codifican con codificación Rice, simple y rápida, suficiente para reproducción en tiempo real en hardware embebido.
FLAC comprime audio a aproximadamente 40-60% del tamaño PCM original — un WAV de 50 MB típicamente se convierte en 25-30 MB como FLAC.
Estructura del Contenedor FLAC
fLaC ← bytes mágicos (0x66 0x4C 0x61 0x43)
METADATA_BLOCK_STREAMINFO ← primer bloque, obligatorio
sample_rate ← 1–655.350 Hz
num_channels ← 1–8 canales
bits_per_sample ← 4–32 bits
total_samples ← hasta 2^36 muestras
MD5 signature ← MD5 de 128 bits del PCM para verificación de integridad
METADATA_BLOCK_VORBIS_COMMENT ← etiquetas (título, artista, álbum, etc.)
METADATA_BLOCK_PICTURE ← portada del álbum incrustada
METADATA_BLOCK_SEEKPOINT[] ← tabla de búsqueda para acceso rápido aleatorio
...
FRAME FRAME FRAME ... ← fotogramas de datos de audio
Niveles de Compresión FLAC
| Nivel | Velocidad de codificación | Tamaño de archivo | Uso típico |
|---|---|---|---|
| 0 | Muy rápida | ~55% de PCM | Codificación en tiempo real |
| 3 | Moderada | ~48% | Buen equilibrio |
| 5 | Estándar | ~44% | Predeterminado — recomendado para archivado |
| 8 | Lenta | ~42% | Compresión máxima |
La velocidad de decodificación es la misma independientemente del nivel de compresión — solo difiere la codificación.
Metadatos: Comentarios Vorbis
FLAC usa el formato de comentarios Vorbis para las etiquetas — un sistema clave=valor simple:
TITLE=The Dark Side of the Moon
ARTIST=Pink Floyd
ALBUM=The Dark Side of the Moon
DATE=1973
TRACKNUMBER=1
GENRE=Progressive Rock
REPLAYGAIN_TRACK_GAIN=-9.52 dB
REPLAYGAIN_TRACK_PEAK=0.991516
Las etiquetas ReplayGain normalizan el volumen percibido entre pistas y álbumes — los reproductores compatibles ajustan el nivel de reproducción.
Audio de Alta Resolución con FLAC
FLAC admite:
- Frecuencias de muestreo: hasta 655.350 Hz
- Profundidad de bits: hasta 32 bits por muestra
- Canales: hasta 8 (surround 7.1)
- Calidad CD: 44.100 Hz / 16 bit / estéreo
- Audio Hi-Res: hasta 192 kHz / 24 bit
FLAC vs. Otros Formatos Lossless
| Formato | Licencia | Compresión | Streaming | Metadatos | Hardware |
|---|---|---|---|---|---|
| FLAC | Libre, abierto | ~50% PCM | No nativo | Comentarios Vorbis | Excelente |
| Apple Lossless (ALAC) | Libre (desde 2011) | ~55% PCM | Sí (HLS) | Etiquetas iTunes | Nativo Apple |
| WMA Lossless | Propietario | ~55% PCM | No | Windows Media | Solo Windows |
| APE (Monkey's Audio) | Propietario | ~45% PCM | No | Etiquetas APEv2 | Limitado |
| WAV | N/A (sin comprimir) | Ninguna | Sí | Limitado | Universal |
Uso en Línea de Comandos
# Codificar WAV a FLAC (nivel 5, predeterminado)
flac entrada.wav -o salida.flac
# Decodificar FLAC a WAV
flac -d entrada.flac -o salida.wav
# Comprobar integridad (decodificar y verificar MD5)
flac -t entrada.flac
# Mostrar metadatos
metaflac --list entrada.flac
# Añadir etiquetas
metaflac --set-tag="ARTIST=Pink Floyd" entrada.flac
# Añadir portada
metaflac --import-picture-from=portada.jpg entrada.flac
ffmpeg con FLAC
# Convertir MP3 a FLAC (sin restaurar calidad perdida)
ffmpeg -i entrada.mp3 -c:a flac salida.flac
# Extraer audio de vídeo a FLAC
ffmpeg -i pelicula.mkv -vn -c:a flac audio.flac
# Convertir FLAC a 16-bit/44.1kHz para grabar en CD
ffmpeg -i hires.flac -c:a flac -ar 44100 -sample_fmt s16 cd.flac
Conversión de FLAC
- FLAC → MP3:
ffmpeg -i entrada.flac -c:a mp3 -b:a 320k salida.mp3 - FLAC → AAC:
ffmpeg -i entrada.flac -c:a aac -b:a 256k salida.m4a - FLAC → WAV:
flac -d entrada.flac -o salida.wav - FLAC → ALAC (M4A):
ffmpeg -i entrada.flac -c:a alac salida.m4a - WAV → FLAC:
flac entrada.wav -o salida.flac
Buenas Prácticas
- Archiva en FLAC, distribuye en MP3/AAC/Opus — lossless para preservación, lossy para entrega.
- Nunca transcodifiques lossy-a-lossy — cada generación de MP3→MP3 reduce la calidad.
- Usa nivel de compresión 5 (predeterminado) para archivado.
- Incrusta siempre la portada a 1000×1000 JPEG para compatibilidad de metadatos de streaming.
- Usa etiquetas ReplayGain para volumen consistente en toda la biblioteca.
- Verifica la integridad con
flac -tdespués de archivar o transferir archivos importantes. - No conviertas MP3 a FLAC — agranda el archivo sin mejorar la calidad.
- Usa Opus a 128-192 kbps para streaming — mejor calidad que MP3 a bitrate equivalente.
Conversiones relacionadas
Pares de formatos de audio más frecuentes: