最近在做车联网项目,遇到一个问题。我们需要把设备上报的音视频数据,使用中间服务推送到rtmp服务器,推送的库使用的是srs-librtmp开源库,但是在推送音频的时候出现了问题,有一部分设备上报的音频数据采样率为8K,但是推送的第三方开源库只支持5.5 kHz、11 kHz、22 kHz、44 kHz 。如果传入其他采样率的,在推送的时候,会根据区域之间使用这四种的一个,这导致推送出来的音频不是播放快,就是慢,失真严重。遇到这个问题就想着把采样率转转,这就需要算法了啊,虽然当你大学专业是通信,专门学这些,但是这几年没有接触,都已经还给老师了。
刚好有个同事在使用webRtc做视频会议(原来是我两在做了),说他在里面有使用,我就找到了里面的源码,将源码提出来封装为动态库,方便使用。
转换效果对比(8K转11K):