WebRTC:修改SDP的带宽参数

时间:2015-05-20 06:16:14

标签: javascript webrtc

初始化/重新协商呼叫,并使用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时,限制适用于传出流,但我注意到的是,限制已应用于传入流 。这是预期的行为吗?

1 个答案:

答案 0 :(得分:2)

这是预期的行为,这是我使用带宽限制时得到的结果:

  

如果sdp商品中的流存在带宽属性,则表示提议者希望接收的所需带宽。

     

回答者可以包括任何媒体流的带宽属性;      这表示回答者希望提供者的带宽      发送媒体时使用。

所以你得到的是预期的行为。