Bien, obtengo audio de MediaRecorder de la siguiente manera:
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { navigator.mediaDevices.getUserMedia( // constraints - only audio needed for this app { audio: { sampleSize: 16, channelCount: 1, sampleRate: 16000 } }) // Success callback .then(function (stream) { mediaRecorder = new MediaRecorder(stream); mediaRecorder.ondataavailable = function (e) { if(e.data) socket.send(e.data); } streamstart(); }) ...Según tengo entendido, estos datos disponibles en la devolución de llamada contienen un formato de audio WebM con codificación opus (Chrome). Esto lo estoy enviando a mi aplicación Win32 para transferirle el sonido del micrófono del teléfono.
Ahora, podría usar libebml para decodificar esta información, pero, ¿hay alguna forma de obtener los bytes de datos de opus sin procesar (es decir, para decodificar en JavaScript)? Para evitar el desperdicio de ancho de banda.
Creo que Opus Media Recorder no puede ayudar, simplemente convierte cualquier tipo de no-opus a opus basado en Webm, no a flujo de opus en bruto.