小编Ben*_*nks的帖子

如何为高质量 Opus 音频设置 SDP

我一直在尝试通过 WebRTC 传输一些高质量的音频流。Opus,主要宣传的编解码器似乎很完美,因为它可以支持高达 510kbit/s 的速度,远远超出需要。问题是,设置 Webrtc SDP 并不像看起来那么明显。感谢 Muaz Khan 的出色工作,我已经能够将其强制为 128kbit/s。基本上代码看起来像这样:

 function setBandwidth(sdp) {
 var sdpLines = sdp.split('\r\n');


// Find opus payload.
var opusIndex = findLine(sdpLines, 'a=rtpmap', 'opus/48000');
var opusPayload;
if (opusIndex) {
    opusPayload = '109';
}
sdpLines[opusIndex]='a=rtpmap:'+opusPayload+' opus/48000/2';


   var mediaIndex = findLine(sdpLines, 'm=audio');
sdpLines[mediaIndex]=(sdpLines[mediaIndex].slice(0,(sdpLines[mediaIndex].indexOf("RTP/SAVPF")+10))).concat(opusPayload); 
 var abIndex = findLine(sdpLines, 'a=mid:');
  sdpLines[abIndex]='a=mid:audio\r\nb=AS:300000';

// Find the payload in fmtp line.
  var fmtpLineIndex = findLine(sdpLines, 'a=fmtp:' + opusPayload.toString());

if (fmtpLineIndex == null) {
    sdpLines[opusIndex] = sdpLines[opusIndex].concat('\r\n'+'a=fmtp:' + opusPayload.toString()+ ' minptime=10; useinbandfec=1; maxaveragebitrate='+128*1024+'; …
Run Code Online (Sandbox Code Playgroud)

javascript audio sdp webrtc opus

6
推荐指数
2
解决办法
5630
查看次数

标签 统计

audio ×1

javascript ×1

opus ×1

sdp ×1

webrtc ×1