海思arm平台AAC音频转码cpu占用高、效率低的问题解决

问题背景

目前市面上的大部分IPC摄像机音频输出基本都是G711、G726编码格式,而在类似于《基于EasyNVR实现RTSP/Onvif监控摄像头Web无插件化直播监控》这种业务中,都是在类似于EasyNVR这样的适配服务中进行音频的转码,也有在类似于《EasyDarwin开源流媒体云平台支持EasyCamera摄像机、EasyCamera手机直播监控、EasyNVR等多终端接入》这种arm设备中需要进行音频转码AAC的需求情况,我们发现在类似于hisi海思芯片的大部分ARM系统中,对浮点运算的支持都不是很好,效率非常低,导致在ARM设备中直接将PCM类型音频转成AAC时,效率非常低,转码服务进程会抢占主服务的CPU资源,导致整个相机的其它工作进程不稳定!

解决方案:EasyAACEncoder

开源EasyAACEncoder 是EasyDarwin开源流媒体服务团队整理、开发的一款音频转码到AAC的工具库,目前支持G711a/G711u/G726/PCM等音频格式的转码,跨平台,支持Windows(32&64)/Linux(32&64)各平台,AAC的转码是基于知名的faac进行的,能够非常稳定、高效地在x86平台工作!

目前该方案在整个海思35xx(海思HI3518、海思HI3516、海思HI3520、海思HI3536)已经得到非常广泛的验证,稳定性和可靠性非常好;

项目地址

项目地址:
https://github.com/EasyDarwin/EasyAACEncoder

调用过程

特殊说明

EasyAACEncoder目前支持的音视频格式:

/* Audio Codec */
enum Law
{
	Law_ULaw	=	0, 		/**< U law */
	Law_ALaw	=	1, 		/**< A law */
	Law_PCM16	=	2, 		/**< 16 bit uniform PCM values. 原始 pcm 数据 */  
	Law_G726	=	3		/**< G726 */
};

/* Rate Bits */
enum Rate
{
	Rate16kBits=2,	/**< 16k bits per second (2 bits per ADPCM sample) */
	Rate24kBits=3,	/**< 24k bits per second (3 bits per ADPCM sample) */
	Rate32kBits=4,	/**< 32k bits per second (4 bits per ADPCM sample) */
	Rate40kBits=5	/**< 40k bits per second (5 bits per ADPCM sample) */
};

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Author:Leo,Kim,Wellsen

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值