Отрегулируйте скорость передачи данных opus в Mozilla Firefox — WebRTC

#webrtc #mozilla #opus

#webrtc #mozilla #opus

Вопрос:

Я только что прочитал статью по этой ссылке:https://developer.mozilla.org/en-US/docs/Web/Media/Formats/WebRTC_codecs

Я хочу знать, есть ли способ вручную или программно настроить 48 кбит / с по умолчанию на 8 кбит / с? В настоящее время я работаю над WebRTC, и мне нужно использовать узкополосный доступ (NB) для моего веб-телефона.

введите описание изображения здесь

Другая статья:https://hacks.mozilla.org/2012/07/firefox-beta-15-supports-the-new-opus-audio-format /

введите описание изображения здесь

Ответ №1:

Как только вы получите SDP из предложения браузера, передайте этот SDP следующей функции, и она вернет вам измененный SDP с желаемым установленным битрейтом звука:

функция onCreateOfferSuccess(desc) { desc.sdp = setAudioBitrate(desc.sdp, 8, true); }

 function setAudioBitrate(sdp, bitrate, isFirefox) {
var modifier = "b=AS:";
if (isFirefox) {
    bitrate = (bitrate >>> 0) * 1000;
    modifier = "b=TIAS:";
}

var lines = sdp.split("rn");
var line = -1;
for (var i = 0; i < lines.length; i  ) {
    if (lines[i].indexOf("m=audio") === 0) {
        line = i;
        break;
    }
}

if (line === -1)
    return sdp;

// Pass the m line
line  ;

// Skip i and c lines
while (lines[line].indexOf("i=") === 0 || lines[line].indexOf("c=") === 0)
    line  ;

// If we are on a b line, replace it
if (lines[line].indexOf("b") === 0) {
    lines[line] = modifier   bitrate;
    return lines.join("rn");
}

// Add a new b line
var newLines = lines.slice(0, line);
newLines.push(modifier   bitrate);
newLines = newLines.concat(lines.slice(line, lines.length));
return newLines.join("rn");
}