...
Воспроизведение стерео звука в браузере
Как и для публикации стерео звука в кодеке Opus, для проигрывания в браузере необходимо установить параметры кодека на стороне сервера
Code Block |
---|
|
opus_formats = maxaveragebitrate=64000;stereo=1;sprop-stereo=1; |
В этом случае браузер Firefox играет стерео звук без дополнительных настроек.
При проигрывании в браузере потока, захваченного из RTMP, RTSP или VOD источника, как правило. звук транскодируется в кодек Opus. По умолчанию, кодировщик Opus настроен на передачу речи и монофонического аудио. Для проигрывания стерео звук звука в браузере, необходимо повысить битрейт кодирования Opus до 60 кбит/с или выше
Code Block |
---|
|
opus.encoder.bitrate=6000064000 |
Браузеры на основе Chrome
По умолчанию, из-за бага в движке браузер Chrome играет WebRTC поток со стерео звуком в кодеке Opus как моно. В связи с этим необходимы дополнительные настройки на стороне клиента, в зависимости от того, используется Web SDK или нет.
С использованием Web SDK
В сборке Web SDK SDK 0.5.28.2753.151 добавлена возможно обойти данный баг при помощи настройки добавлена настройка для проигрывания стерео звука
Code Block |
---|
|
constraints.audio.stereo=true |
...
Code Block |
---|
|
session.createStream({
name: streamName,
display: remoteVideo,
constraints: {
audio: {
stereo: true
}
}
...
}).play(); |
...
Без использования Web SDK
Если в проекте используется только Websocket API, необходимо отключить эхоподавление
Code Block |
---|
|
session.createStream({
name: streamName,
display: remoteVideo,
constraints: {
audio: {
echoCancellation: false,
googEchoCancellation: false
},
...
}
...
}).play(); |
Также необходимо изменить параметры кодека Opus в исходящем (offer) SDP, непосредственно после его создания
Code Block |
---|
|
var connection = new RTCPeerConnection(connectionConfig, connectionConstraints);
...
connection.createOffer(constraints).then(function (offer) {
offer.sdp = offer.sdp.replace('minptime=10', 'minptime=10;stereo=1;sprop-stereo=1');
connection.setLocalDescription(offer).then(function () {
...
});
}); |
Дополнительная задержка при воспроизведении видеопотока
...