#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");
}