EasyDarwin团队开发的EasyAACEncoder(https://github.com/EasyDarwin/EasyAACEncoder)支持将各种音频数据(G.711A/PCMA、G.711U/PCMU、G726、PCM)转码成AAC(with adts)格式,其中aac编码部分采用的是业界公认的faac库,EasyAACEncoder支持Windows、Linux、ARM等多种平台,能够应用于各种移动终端设备、嵌入式设备和流媒体转码服务器,是一款稳定、高效、易用的ARM端音频转码到AAC的工具库方案,以SDK形式提供,接口调用非常简单!
本文主要针对EasyAACEncoder在实际使用过程中遇到的ARM平台CPU消耗过高问题进行分析介绍。
实际测试中,在x86设备上效果还不错,可以满足正常音频转换的需求,但是在海思等ARM平台上,CPU消耗较高。
为了解决这个问题,EasyDarwin团队重新打造了一份高效率的适用于Linux系统(x86和ARM架构)的版本,针对算法、效率等进行了优化。目前测试在硬件设备较差的ARM9架构的hisi3518C上,调用设备SDK,并进行音频转码,CPU消耗在4%~5%左右,在其他设备上CPU的消耗会更低,非常适用于嵌入式设备内部进行音频转码。
testEasyAACEncoder:通过EasyAACEncoderAPI对G711A/G711U/G726进行AAC转码;
Linux编译方法,可通过执行./Buildit不带参数查看如何编译
chmod +x ./Buildit
./Buildit hisiv100
ARM版本的EasyAACEncoder库可自行编译;
跨平台:同时支持Windows、Linux、ARM多种平台,其中x86平台(Windows & Linux)为开源项目
高效率:ARM端音频转码方案效率相比通用转码方案,效率提升10%~15%
简洁易用:EasyAACEncoder接口简单易用,只需几个简单接口调用即可完成组装,配套文档及调用示例完整全面
应用广泛:无论是安防行业,还是互联网音视频行业,都有非常广泛的使用场景,帮助企业快速进行安防互联网化应用的转变