初始化/重新协商呼叫,并使用PeerConnection createOffer
/ createAnswer
创建优惠/答案sdp时,在使用setLocalDescription
设置sdp之前,我将其修改为:
// inside createOffer/createAnswer
sdp.sdp = modifySDP(sdp.sdp);
pc.setLocalDescription(sdp, function...
...
// setting video bandwidth as 100kbps and audio as 50kbps.
function modifySDP(sdp){
sdp = sdp.replace(/a=mid:video\r\n/g, 'a=mid:video\r\nb=AS:100\r\n');
sdp = sdp.replace(/a=mid:audio\r\n/g, 'a=mid:audio\r\nb=AS:50\r\n');
return sdp;
}
经过几次测试后,我意识到firefox不支持此修改,已报告为bug
但让我感到惊讶的是,铬行为。最初是因为我在双方都设置了带宽限制,所以我没有注意到这一点(后来我只在提供者方面应用了这些限制)。我的假设是,当您在PeerConnection上设置SDP时,限制适用于传出流,但我注意到的是,限制已应用于传入流 。这是预期的行为吗?
答案 0 :(得分:2)
这是预期的行为,这是我使用带宽限制时得到的结果:
如果sdp商品中的流存在带宽属性,则表示提议者希望接收的所需带宽。
回答者可以包括任何媒体流的带宽属性; 这表示回答者希望提供者的带宽 发送媒体时使用。
所以你得到的是预期的行为。