Webrt c уровень звука сходит с ума случайно - PullRequest
0 голосов
/ 28 мая 2020

У меня есть удаленная конечная точка Webrt c (на основе libwebrt c), которая производит звук с монитора приемника pulseaudio. Я могу успешно использовать его в Chrome через тег видео html. Проблема, с которой я столкнулся, заключается в том, что звук кажется go "сумасшедшим" ​​случайным образом, что означает, что уровень звука внезапно становится очень высоким, и его невозможно слушать.

На отправляющей стороне я использую это для отключения обработки звука:

cricket::AudioOptions options;    
options.highpass_filter = false;
options.auto_gain_control = false;
options.noise_suppression = false;
options.echo_cancellation = false;
options.residual_echo_detector = false;
options.experimental_agc = false;
options.experimental_ns = false;
options.typing_detection = false;
rtc::scoped_refptr<webrtc::AudioSourceInterface> source = webrtcFactory->CreateAudioSource(options);

Но на принимающей стороне (Chrome браузер), похоже, нет способа отключить его .

Running mediaDevices.getSupportedConstraints () in Chrome возвращает:

aspectRatio: true
autoGainControl: true
brightness: true
channelCount: true
colorTemperature: true
contrast: true
deviceId: true
echoCancellation: true
exposureCompensation: true
exposureMode: true
exposureTime: true
facingMode: true
focusDistance: true
focusMode: true
frameRate: true
groupId: true
height: true
iso: true
latency: true
noiseSuppression: true
pointsOfInterest: true
resizeMode: true
sampleRate: true
sampleSize: true
saturation: true
sharpness: true
torch: true
whiteBalanceMode: true
width: true
zoom: true

Затем выполняется track. getCapabilities () in Chrome возвращает:

autoGainControl: [false]
deviceId: "7254143d-7c85-4567-9d95-94f2c79060fe"
echoCancellation: [false]
noiseSuppression: [false]
sampleSize: {max: 16, min: 16}

И, наконец, track.getConstraints () in Chrome возвращает и пусто объект.

Из вышеизложенного я понимаю, что Chrome поддерживает отмену обработки звука, а трек - нет. На данный момент я не понимаю, в какой момент (отправка или получение) обработка звука webrt c делает уровень звука go сумасшедшим.

Я читал здесь что (при использовании файла в качестве тестового ввода в Chrome) « вся обработка звука должна быть отключена, иначе звук будет искажен ». Это именно то, что я хочу сделать для своего трека, с той разницей, что, поскольку мой трек удален, я не получаю его через getUserMedia () в браузере.

I много читали об отключении обработки звука Webrt c и пробовали разные вещи как на производящей, так и на потребляющей стороне, но та же проблема по-прежнему появляется случайным образом.

Есть ли у вас какие-либо идеи, с какой стороны ( отправитель или Chrome потребитель) проблема может быть?

1 Ответ

0 голосов
/ 28 мая 2020

Проблема была на стороне отправителя и не имела отношения к libwebrt c.

...