EasyAACEncoder:AAC编码海思等ARM平台优化G711、G726转AAC的CPU占用等问题

背景分析

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库可自行编译

调用过程

EasyAACEncoder:AAC编码海思等ARM平台优化G711、G726转AAC的CPU占用等问题_第1张图片

功能特点

跨平台:同时支持Windows、Linux、ARM多种平台,其中x86平台(Windows & Linux)为开源项目

高效率:ARM端音频转码方案效率相比通用转码方案,效率提升10%~15%

简洁易用:EasyAACEncoder接口简单易用,只需几个简单接口调用即可完成组装,配套文档及调用示例完整全面

应用广泛:无论是安防行业,还是互联网音视频行业,都有非常广泛的使用场景,帮助企业快速进行安防互联网化应用的转变

应用场景

EasyAACEncoder:AAC编码海思等ARM平台优化G711、G726转AAC的CPU占用等问题_第2张图片

安防摄像机互联网化

云端转码

EasyAACEncoder:AAC编码海思等ARM平台优化G711、G726转AAC的CPU占用等问题_第3张图片

互联网直播摄像机

EasyAACEncoder:AAC编码海思等ARM平台优化G711、G726转AAC的CPU占用等问题_第4张图片

流媒体编码器

你可能感兴趣的:(EasyAACEncoder)