OGG / Vorbis: Guía Completa del Formato de Audio
OGG es un formato contenedor libre y abierto desarrollado por la Fundación Xiph.Org. Vorbis es el códec de audio con pérdida de código abierto más comúnmente asociado a él. Juntos, OGG/Vorbis representan la alternativa completamente libre de royalties al MP3 — ofreciendo calidad de audio comparable o mejor a tasas de bits similares, sin cargas de patentes.
El Contenedor OGG
OGG es un formato de multiplexación de bitstreams lógicos. Un stream OGG físico se divide en páginas, que transportan datos de uno o más bitstreams lógicos (audio, vídeo, metadatos, etc.). La estructura de página es:
| Campo | Tamaño | Descripción |
|---|---|---|
| Patrón de captura | 4 bytes | Bytes mágicos OggS |
| Versión de estructura | 1 byte | Siempre 0x00 |
| Tipo de cabecera | 1 byte | 0x02 = BOS (inicio), 0x04 = EOS (fin), 0x01 = continuación |
| Posición granular | 8 bytes | Contador de muestras PCM decodificadas (usado para seeking) |
| Número de serie del bitstream | 4 bytes | Identifica el bitstream lógico |
| Número de secuencia de página | 4 bytes | Monotónicamente creciente por bitstream |
| Suma de verificación | 4 bytes | CRC-32 de toda la página |
| Número de segmentos | 1 byte | Cuántos valores de lacing siguen (máx. 255) |
| Tabla de segmentos | 1–255 bytes | Valores de lacing que describen los límites de paquetes |
| Datos de página | variable | Paquetes de audio/metadatos empaquetados |
Pipeline de Codificación Vorbis
Vorbis es un códec de transformada que usa la MDCT (Transformada de Coseno Discreta Modificada) con ventanas de análisis solapadas:
- Ventaneo: La PCM de entrada se divide en bloques solapados de 256 o 4096 muestras. Los bloques pequeños manejan transientes; los grandes manejan tonos sostenidos — Vorbis cambia dinámicamente.
- MDCT: Transforma cada bloque ventaneado en 128 o 2048 coeficientes de frecuencia.
- Enmascaramiento psicoacústico: La conformación de ruido calcula una curva de enmascaramiento; los componentes de frecuencia enmascarados por tonos cercanos más fuertes reciben cuantificación más gruesa.
- Codificación del suelo: Aproximación lineal por tramos de la envolvente espectral.
- Codificación de residuos: Los residuos se cuantifican vectorialmente usando un codebook entrenado (VQ).
- Codificación de entropía Huffman: Las salidas VQ se codifican con Huffman.
Escala de Calidad Vorbis
A diferencia de MP3 que usa una tasa de bits nominal, Vorbis usa un índice de calidad (-q:a en FFmpeg) que va de -1 a 10:
| Calidad | Bitrate VBR aprox. | Calidad perceptual | Caso de uso |
|---|---|---|---|
| -1 | ~45 kbps | Voz aceptable | Streams de voz mínimos |
| 0 | ~64 kbps | Voz buena | Podcast, voz |
| 1 | ~80 kbps | Música aceptable | Streaming de bajo ancho de banda |
| 2 | ~96 kbps | Música buena | Móvil estándar |
| 3 | ~112 kbps | Muy buena | Streaming web estándar |
| 4 | ~128 kbps | Excelente | Streaming de alta calidad |
| 5 | ~160 kbps | Transparente | Distribución de música |
| 6 | ~192 kbps | Muy transparente | Música de alta calidad |
| 8 | ~256 kbps | Casi archival | Streaming audiófilo |
| 10 | ~500 kbps | Casi sin pérdida | Calidad de referencia |
Codificación OGG/Vorbis con FFmpeg
# Convertir WAV a OGG Vorbis a calidad 5 (~160 kbps VBR)
ffmpeg -i entrada.wav -c:a libvorbis -q:a 5 salida.ogg
# Tasa de bits media específica (modo ABR)
ffmpeg -i entrada.wav -c:a libvorbis -b:a 128k salida.ogg
# Extraer audio de vídeo como OGG
ffmpeg -i video.mp4 -vn -c:a libvorbis -q:a 4 audio.ogg
# Conversión por lotes de todos los WAV del directorio
for f in *.wav; do
ffmpeg -i "$f" -c:a libvorbis -q:a 5 "${f%.wav}.ogg"
done
Manipulación de OGG/Vorbis con Python
from mutagen.oggvorbis import OggVorbis
audio = OggVorbis('pista.ogg')
# Información del stream (solo lectura)
print(f"Duración : {audio.info.length:.2f} s")
print(f"Bitrate : {audio.info.bitrate} bps")
print(f"Canales : {audio.info.channels}")
print(f"Tasa muestr.: {audio.info.sample_rate} Hz")
# Leer etiquetas Vorbis Comment
print("Título :", audio.get('title', ['(ninguno)'])[0])
print("Artista :", audio.get('artist', ['(ninguno)'])[0])
# Escribir etiquetas (todos los valores son listas de strings)
audio['title'] = ['Nuevo Título de Pista']
audio['artist'] = ['Nombre del Artista']
audio['album'] = ['Nombre del Álbum']
audio['tracknumber'] = ['04']
audio['date'] = ['2025']
audio['genre'] = ['Electrónica']
audio.save()
OGG/Vorbis vs Otros Códecs de Audio
| Códec | Contenedor | Sin royalties | Calidad ~128 kbps | Calidad ~64 kbps | Soporte navegador |
|---|---|---|---|---|---|
| Vorbis | OGG | Sí | Excelente | Buena | Chrome, Firefox, Edge (no Safari) |
| Opus | OGG/WebM | Sí | Excelente | Excelente | Todos los navegadores modernos |
| MP3 | MP3/MPEG | Libre (2017+) | Buena | Pobre | Universal |
| AAC | M4A/MP4 | De pago | Excelente | Buena | Todos (nativo iOS/macOS) |
| FLAC | FLAC/OGG | Sí | Sin pérdida | Sin pérdida | Creciente |
¿Vorbis u Opus para proyectos nuevos? Elige Opus. Vorbis fue el estado del arte cuando se publicó (~2000) pero Opus lo superó en 2012. A cualquier tasa de bits dada, Opus entrega igual o mejor calidad, con un rendimiento dramáticamente superior a tasas de bits muy bajas (por debajo de 64 kbps) y modos de latencia ultra-baja para WebRTC. La única razón para elegir Vorbis hoy es la compatibilidad heredada con reproductores que soportan OGG/Vorbis pero no Opus.
Errores Comunes
- Safari no soporta OGG Vorbis. El navegador Safari de Apple y el sistema de audio de iOS/macOS no incluyen un decodificador Vorbis. Para audio web que debe funcionar en dispositivos Apple, usa AAC/MP4 u Opus/WebM.
- Evita ABR Vorbis salvo que los presupuestos de tasa de bits sean fijos. El modo de calidad VBR produce una calidad significativamente mejor que ABR a la misma tasa de bits media.
- Las etiquetas Vorbis Comment son insensibles a mayúsculas pero convencionalmente en minúsculas.
ARTIST,Artistyartistson el mismo campo; usa la forma en minúsculas para maximizar la compatibilidad. - No hagas transcodificación de lossy a lossy. Convertir MP3 → OGG a la misma calidad no mejorará — y probablemente degradará — la calidad de audio. Mantén los originales sin pérdida o codifica desde la fuente de mayor calidad disponible.
Conversiones relacionadas
Pares de formatos de audio más frecuentes: