我们使用webrtc的时候遇到过带宽占用太高的问题。查看别人的博客也发现他们的项目一般都是支持一个服务器5到6人的语音。这是成本太高的问题。
其实webrtc自己是可以设置这些的。
仔细阅读webrtc的源码,我设置如下的参数,使得带宽减少了一半多。一个5M服务器可以支持近30人。
private static final boolean _preferIsac = true; private static final int _audioStartBitrate = 0;
调用下面的两个函数:
private static String preferCodec(
String sdpDescription, String codec, boolean isAudio) {
String[] lines = sdpDescription.split("\r\n");
int mLineIndex = -1;
String codecRtpMap = null;
// a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding parameters>]
String regex = "^a=rtpmap:(\\d+) " + codec + "(/\\d+)+[\r]?$";
Pattern codecPattern = Pattern.compile(regex);
String mediaDescription = "m=video ";
if (isAudio) {
mediaDescription = "m=audio ";
}
for (int i = 0; (i <