> 文章列表 > 【GB28181】PJSIP库(八)回声消除、热拔插、声音去抖

【GB28181】PJSIP库(八)回声消除、热拔插、声音去抖

【GB28181】PJSIP库(八)回声消除、热拔插、声音去抖

【目录】郭老二博文之:图像视频汇总

1、回声消除

Accoustic Echo Cancellation (AEC)
PJMEDIA 中有多个回声消除器实现,从简单的回声抑制器到完整的声学回声消除器AEC:

pjmedia_echo*:PJSIP自身的回声消除API
支持WebRTC AEC3:https://github.com/pjsip/pjproject/pull/2722
可以和webrtc集成:https://github.com/pjsip/pjproject/issues/1888
支持硬件的AEC/VPIO:https://github.com/pjsip/pjproject/issues/1778
支持Speex AEC:https://github.com/pjsip/pjproject/issues/589

2、热拔插

PJSIP没有热拔插的功能,只能自己实现。当检测到设备变化时,可以使用 pjmedia_aud_dev_refresh() 来刷新声音设备列表。
一般在未打开声音设备时执行此操作,即

先执行pjsua_set_no_snd_dev()强制关闭当前打开的声音设备,
再执行 pjmedia_aud_dev_refresh() 来刷新声音设备列表
最后执行 pjsua_set_snd_dev() 来重新管理声音设备

3、声音去抖