Opus: El Códec de Audio Moderno para Streaming, VoIP y Música
Opus es el códec de audio que ha conquistado silenciosamente las comunicaciones en tiempo real y avanza rápidamente en el streaming de música. Utilizado por Discord, Zoom, WhatsApp, YouTube y Netflix, Opus logra mejor calidad que MP3 a menores tasas de bits, mejor calidad que Vorbis en el rango de baja tasa de bits, y mejor calidad que Speex para voz — todo en un único códec unificado.
¿Qué Es Opus?
Opus es un códec de audio abierto y libre de royalties estandarizado por el IETF como RFC 6716 (2012). Fue desarrollado colaborativamente por Xiph.Org y Mozilla. A diferencia de la mayoría de los códecs que apuntan a voz O música, Opus alterna dinámicamente entre dos motores internos:
- SILK (desarrollado por Skype): optimizado para voz a 8–24 kHz y tasas muy bajas (6–40 kb/s)
- CELT (de Xiph): un códec transformado de baja latencia optimizado para música a 8–48 kHz y 32 kb/s+
El codificador mezcla automáticamente entre SILK, CELT o un híbrido de ambos según el contenido y el objetivo de tasa de bits.
Especificaciones Técnicas de Opus
| Parámetro | Rango | Notas |
|---|---|---|
| Frecuencia de muestreo | 8, 12, 16, 24, 48 kHz | 48 kHz es la tasa nativa |
| Tasa de bits | 6 – 510 kb/s | Completamente variable |
| Canales | 1 – 255 | Mono a multicanal |
| Tamaños de trama | 2,5, 5, 10, 20, 40, 60 ms | 20 ms típico para VoIP |
| Latencia algorítmica | 26,5 ms (SILK) / 5 ms (CELT) | Crucial para tiempo real |
| Contenedor | OGG, WebM, paquetes puros | .opus = contenedor OGG |
| FEC | Sí (modo SILK) | Corrección de errores hacia adelante |
Comparativa de Calidad Opus
| Tasa de bits | Opus | MP3 | AAC-LC | Vorbis |
|---|---|---|---|---|
| 24 kb/s | Excelente | Pobre | Bueno | Regular |
| 64 kb/s | Transparente | Bueno | Transparente | Bueno |
| 128 kb/s | Transparente | Transparente | Transparente | Transparente |
| 6 kb/s (voz) | Inteligible | N/A | Pobre | N/A |
"Transparente" significa indistinguible del original en pruebas de escucha a doble ciego.
Umbral clave: 64 kb/s estéreo Opus es ampliamente considerado perceptualmente transparente para música. 24 kb/s mono Opus es excelente para voz — mejor que 64 kb/s mono MP3.
Conversión a Opus con FFmpeg
# Convertir MP3/WAV/FLAC a Opus (calidad estándar para música)
ffmpeg -i entrada.mp3 -c:a libopus -b:a 128k salida.opus
# Optimización de voz (modo SILK, baja tasa de bits)
ffmpeg -i voz.wav -c:a libopus -b:a 24k -vbr on \
-compression_level 10 -application voip salida.opus
# Música a calidad transparente
ffmpeg -i musica.flac -c:a libopus -b:a 64k -vbr on \
-compression_level 10 -application audio salida.opus
# Empaquetar Opus en WebM (para vídeos con audio Opus)
ffmpeg -i video.mp4 -c:v copy -c:a libopus -b:a 96k salida.webm
# Convertir Opus de vuelta a WAV (decodificación sin pérdida)
ffmpeg -i entrada.opus salida.wav
Parámetros FFmpeg para Opus
| Parámetro | Valores | Descripción |
|---|---|---|
-b:a |
6k – 510k | Tasa de bits objetivo |
-vbr |
on / off / constrained |
Modo de tasa de bits variable |
-compression_level |
0 – 10 | Equilibrio velocidad/calidad (10=más lento/mejor) |
-application |
voip / audio / lowdelay |
Objetivo de optimización |
-packet_loss |
0 – 100 | % de pérdida de paquetes esperada (activa FEC) |
Herramientas opusenc / opusdec
# Codificar WAV a Opus (VBR, objetivo 128 kb/s)
opusenc --bitrate 128 entrada.wav salida.opus
# Codificar para VoIP (modo SILK, 24 kb/s)
opusenc --bitrate 24 --speech entrada.wav salida.opus
# Codificar con metadatos de pista
opusenc --bitrate 96 \
--title "Sinfonía No. 9" \
--artist "Beethoven" \
--album "Sinfonías Completas" \
entrada.wav salida.opus
# Decodificar Opus a WAV
opusdec entrada.opus salida.wav
Opus en Aplicaciones Web
// Grabar micrófono a Opus (WebRTC/MediaRecorder)
async function grabarOpus() {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const mediaRecorder = new MediaRecorder(stream, {
mimeType: 'audio/webm;codecs=opus',
audioBitsPerSecond: 64000
});
const chunks = [];
mediaRecorder.ondataavailable = e => chunks.push(e.data);
mediaRecorder.onstop = () => {
const blob = new Blob(chunks, { type: 'audio/webm' });
document.querySelector('audio').src = URL.createObjectURL(blob);
};
mediaRecorder.start(100);
setTimeout(() => mediaRecorder.stop(), 5000);
}
Formatos Contenedor para Opus
| Contenedor | Extensión | Caso de uso |
|---|---|---|
| OGG | .opus (o .ogg) |
Almacenamiento de ficheros, servidores de streaming |
| WebM | .webm |
Vídeo web con pista de audio Opus |
| Matroska | .mkv |
Vídeo de alta calidad + audio Opus |
| Raw | ninguna | Paquetes RTP de WebRTC |
Cuándo Usar Opus
| Caso de uso | Tasa de bits recomendada | Notas |
|---|---|---|
| VoIP / videollamadas | 12–24 kb/s mono | Activar FEC con -packet_loss |
| Mensajes de voz | 24–32 kb/s | Excelente inteligibilidad |
| Streaming de podcasts | 48–64 kb/s | Indistinguible de MP3 a 128 kb/s |
| Streaming de música | 64–96 kb/s | Transparente para la mayoría |
| Archivado audiófilo | 192–256 kb/s | O simplemente usa FLAC |
| WebRTC tiempo real | 32–64 kb/s | Predeterminado en navegadores |
Resumen
Opus es el mejor códec de audio de propósito general disponible hoy: libre de royalties, abierto, y superando a todas las alternativas desde voz hasta música. Su doble motor SILK/CELT, FEC integrado y latencia inferior a 30 ms lo hacen idóneo tanto para comunicación en tiempo real como para almacenamiento de ficheros.
Conversiones relacionadas
Conversiones de vídeo que encajan con esta guía: