在初始化/重新协商呼叫,并使用PeerConnection的createOffer/createAnswer创建sdp时,在设置sdp使用setLocalDescription之前,我将其修改为:
// 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不支持这种修改,这种修改已经被报告为错误。
但让我吃惊的是铬的行为。最初是因为我在双方都设置了带宽限制,所以我没有注意到这一点(后来我只在出价方应用了这些限制)。我的假设是,当您在PeerConnection上设置SDP时,这些限制适用于传出流,但我注意到的是,这些限制被应用于传入流。这是预期的行为吗?
发布于 2015-06-11 07:21:11
当我使用带宽限制时,这就是我所期望的行为:
如果在sdp提供的流中存在带宽属性,则它指示提供者希望接收的所需带宽。 应答者可以包括任何媒体流的带宽属性;这表示应答者希望发件人在发送媒体时使用的带宽。
所以你得到的是预期的行为。
https://stackoverflow.com/questions/30341664
复制相似问题