问题背景

目前市面上的大部分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平台工作,而在arm平台上,我们根据特定的ARM平台定制整理出了一套商用版本的音频转码EasyAACEncoder SDK,目前海思(hisiv100、hisiv200、hisiv300、hisiv400)全系列均已支持,CPU占用率极低,能非常好地满足ARM平台的AAC音频转码需求!

项目地址

项目地址:

https://github.com/EasyDarwin/EasyAACEncoder

x86开源版本:

https://github.com/EasyDarwin/EasyAACEncoder/tree/master/OpenSourceVersion

arm平台定制优化版本(需提供工具链):

https://github.com/EasyDarwin/EasyAACEncoder/tree/master/CommercializedVersion

调用过程

特殊说明

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

海思arm平台AAC音频转码cpu占用高、效率低的问题解决的更多相关文章

  1. EasyAACEncoder海思/ARM平台优化G711、G726转AAC的CPU占用高问题

    本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/75645378 引言 目前EasyDarwin ...

  2. 海思HI35xx平台软件开发快速入门之H264解码实例学习

    ref :https://blog.csdn.net/wytzsjzly/article/details/82500277   前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟 ...

  3. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  4. 在海思hisiv100nptl平台上交叉编译并安装SRS

    ./configure --with-arm-ubuntu12 && make 须要安装: apt-get installgcc-arm-linux-gnueabi     ,但hi3 ...

  5. 在嵌入式、海思、ARM中进行统一的音频AAC编码的必要性

    前言 最近来到深圳,跟许多做硬件的小伙伴聊安防.聊互联网.聊技术,受益颇多,其中聊到一点,大家一直都在想,互联网发展如此迅猛,为啥大部分的摄像机还是采用的传统G.726/G.711的音频编码格式呢,如 ...

  6. OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台

    前言   移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持.   Ffmpeg的移植   Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...

  7. RTSPClient工具EasyRTSPClient支持H.265,支持海思等各种芯片平台

    EasyRTSPClient是EasyDarwin开源流媒体团队开发.提供的一套非常稳定.易用.支持重连的RTSPClient工具,接口调用非常简单,再也不用像调用live555那样处理整个RTSP ...

  8. 用VS2013+VELT-0.1.4进行海思平台 Linux内核 的开发

    快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs20 ...

  9. 用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发

    1.1    什么是VELT VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件 ...

随机推荐

  1. 20145302张薇《Java程序设计》第九周学习总结

    20145302 <Java程序设计>第九周学习总结 教材学习内容总结 第十六周 JDBC简介 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC目的:让Jav ...

  2. 20145327实验五 Java网络编程

    实验五 Java网络编程 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器, ...

  3. 1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)

    转载自(http://jm.ncxyol.com/post-88.html) 今天在看Python   API时,看到time模块: The epoch is the point where the ...

  4. jQuery的$.each()遍历checkbox

    $("input[type='checkbox']").each(function(){ var value = $(this).val(); //获得值 $(this).attr ...

  5. An Overview of Forms Authentication (C#)

    https://docs.microsoft.com/en-us/aspnet/web-forms/overview/older-versions-security/introduction/an-o ...

  6. Codeforces gym 100971 D. Laying Cables 单调栈

    D. Laying Cables time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  7. 理解OAuth 2.0授权

    一.什么是OAuth 二.什么场景下会用到OAuth授权 三.OAuth 2.0中的4个成员 四.OAuth 2.0授权流程 五.OAuth 2.0授权模式 1.    authorization c ...

  8. 基于哈夫曼编码的压缩解压程序(C 语言)

    这个程序是研一上学期的课程大作业.当时,跨专业的我只有一点 C 语言和数据结构基础,为此,我查阅了不少资料,再加上自己的思考和分析,实现后不断调试.测试和完善,耗时一周左右,在 2012/11/19 ...

  9. 2-3 sshd服务---暴力破解应对策略

      sshd服务暴力破解步骤 sshd暴力破解方法 防止暴力破解调优 1. 变更默认端口 2. 变更root用户 3. 日志监控-->防止暴力破解(fail2ban应用) fail2ban详解 ...

  10. 第一阶段考试:实战Linux系统日常管理

    1. [项目名称] 实战Linux系统日常管理 [项目说明] 1.安装部署rhel系统,组建RAID磁盘阵列. 2.安装nginx 通过脚本编写 nginx服务服务启动脚本 [项目考核技能点] 1.安 ...