Hola, tengo un problema, básicamente, estoy enviando un audio estéreo con WebRTC de esta manera.
const audioStream = await navigator.mediaDevices.getUserMedia({ audio: { autoGainControl: false, channelCount: 2, echoCancellation: false, latency: 0, noiseSuppression: false, sampleRate: 48000, sampleSize: 16, volume: 1.0, }, video: false, }); Si compruebo la cantidad de canales, tengo 2 canales getAudioTracks()[0].getSettings().channelCount
Si reviso la descripción que estoy enviando tengo 2 canales
a=rtpmap:111 opus/48000/2
Si marca la descripción que estoy recibiendo, tengo 2 canales.
Pero la transmisión que estoy recibiendo solo tiene un canal
connection.ontrack = ({ streams: [stream] }) => { audio.srcObject = stream; console.log(stream.getAudioTracks()[0].getSettings().channelCount); // =1 };No entiendo lo que está pasando.
Puedes probarlo tú mismo aquí
Echa un vistazo a chrome://webrtc-internals/
Cuando ejecuto su código, obtengo "indefinido" para stream.getAudioTracks()[0].getSettings().channelCount cuando lo llamo en su función GotRemoteStream.
Sin embargo, en chrome://webrtc-internals, en RTCInboundRTPAudioStream stats, veo que llegan 48 muestras por segundo (eso debe significar 48kHz estéreo para Opus) y también "códec" dice "estéreo = 1", lo que indica que realmente está recibiendo sonido estéreo .