html5 – WebRTC – 禁用所有音频处理

前端之家收集整理的这篇文章主要介绍了html5 – WebRTC – 禁用所有音频处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试通过webrtc获得一个干净的音频通道.通过getUserMedia mediaconstraints对象,我设置了以下选项:
constraints: {
        audio: {
            mandatory: {
                echoCancellation: false,googEchoCancellation: false,googAutoGainControl: false,googAutoGainControl2: false,googNoiseSuppression: false,googHighpassFilter: false,googTypingNoiseDetection: false,//googAudioMirroring: false // For some reason setting googAudioMirroring causes a navigator.getUserMedia error:  NavigatorUserMediaError
            }
        },video: false
    },

这大大提高了音频质量,但是似乎存在音频处理,这导致了一些测试样本以高频噪声的形式破坏音频.

有一个Chrome标志 – 用于假冒音频捕获的文件 – 如http://peter.sh/experiments/chromium-command-line-switches/#use-file-for-fake-audio-capture所述,允许通过文件输入进行测试.如在标志的描述中所提及的,所有音频处理都必须被禁用或音频将被扭曲 – 所以似乎有其他选项用于此目的.

我也尝试过–disable-audio-track-processing -audio-buffer-size = 16-enable-exclusive-audio Chrome标志,但仍然有一些音频处理.

是否有任何方法来禁用仍然存在的音频处理(最好通过JS API)?

解决方法

我会赌注opus编解码器的可变比特率(默认)行为导致一些压缩或调整.您可以手动操纵SDP报价以使用CBR(恒定比特率)而不是VBR(可变比特率).当您从浏览器获取SDP报价时,请更改行:
a=fmtp:111 minptime=10; useinbandfec=1

至:

a=fmtp:111 minptime=10; cbr=1

请注意,我同时添加cbr = 1并删除useinbandfec = 1.我不太乐意放弃useinbandfec是必要的,但是似乎带内FEC(转发错误纠正)会导致您想要避免的压缩调整.

原文链接:https://www.f2er.com/html5/168551.html

猜你在找的HTML5相关文章