WebRTC 发送立体声音频流,接收单声道音频流
WebRTC Sending Stereo Audio Stream, Receiving Mono Audio Stream
嗨,我有一个问题,基本上我是用这种方式用 WebRTC 发送立体声音频
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,
});
如果我检查通道数,我有 2 个通道 getAudioTracks()[0].getSettings().channelCount
如果我查看我发送的描述,我有 2 个频道
a=rtpmap:111 opus/48000/2
如果查看我收到的说明,我有 2 个频道。
但是我收到的流只有一个频道
connection.ontrack = ({ streams: [stream] }) => {
audio.srcObject = stream;
console.log(stream.getAudioTracks()[0].getSettings().channelCount); // =1
};
我不明白这是怎么回事。
你可以在这里自己试一下
查看 chrome://webrtc-internals/
当我 运行 你的代码时,当我在你的 GotRemoteStream 函数中调用它时,我得到 stream.getAudioTracks()[0].getSettings().channelCount 的“未定义”。
然而,在 chrome://webrtc-internals 中,在 RTCInboundRTPAudioStream 统计数据中,我看到每秒有 48 个样本到达(这对于 Opus 来说一定意味着 48kHz 立体声)并且“编解码器”表示“stereo=1 " 这表明您确实在接收立体声。
嗨,我有一个问题,基本上我是用这种方式用 WebRTC 发送立体声音频
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,
});
如果我检查通道数,我有 2 个通道 getAudioTracks()[0].getSettings().channelCount
如果我查看我发送的描述,我有 2 个频道
a=rtpmap:111 opus/48000/2
如果查看我收到的说明,我有 2 个频道。
但是我收到的流只有一个频道
connection.ontrack = ({ streams: [stream] }) => {
audio.srcObject = stream;
console.log(stream.getAudioTracks()[0].getSettings().channelCount); // =1
};
我不明白这是怎么回事。
你可以在这里自己试一下
查看 chrome://webrtc-internals/
当我 运行 你的代码时,当我在你的 GotRemoteStream 函数中调用它时,我得到 stream.getAudioTracks()[0].getSettings().channelCount 的“未定义”。
然而,在 chrome://webrtc-internals 中,在 RTCInboundRTPAudioStream 统计数据中,我看到每秒有 48 个样本到达(这对于 Opus 来说一定意味着 48kHz 立体声)并且“编解码器”表示“stereo=1 " 这表明您确实在接收立体声。