zoukankan      html  css  js  c++  java
  • 在嵌入式、海思、ARM中进行统一的音频AAC编码的必要性

    前言

    最近来到深圳,跟许多做硬件的小伙伴聊安防、聊互联网、聊技术,受益颇多,其中聊到一点,大家一直都在想,互联网发展如此迅猛,为啥大部分的摄像机还是采用的传统G.726/G.711的音频编码格式呢,如果能直接输出AAC格式的音频,再配合H.264+AAC,基本上编码数据就不用再做处理,就可以直接做协议转换的输出了,输出:RTSP、RTMP、HLS、MP4、FLV各种协议和封装格式,而如果还是传统安防的音频格式,不但音频数据要做转码,时间戳也要重新矫对,非常不便;

    为什么呢?

    目前市面上的大部分摄像机采用的是海思方案,可能,只能说是可能由于版权/版权费的原因,海思的芯片音频硬编码一直都没有加入AAC编码格式,还是继续沿用传统的PCMA/PCMU/G.726这些格式;

    那怎么办?

    可喜的是音频转码的复杂度不像视频转码复杂度这么高,直接采用软解码+软编码的方式即可,但是通常的浮点运算在海思这样的arm芯片中又没法像x86上那样高效,非常占用CPU,所以必须改变方式为定点计算的方法,于是我们开发了一套EasyAACEncoder arm版本:

    解决方案:EasyAACEncoder

    开源EasyAACEncoder 是一款音频转码到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

    Copyright © EasyDarwin.org 2012-2017

    EasyDarwin

  • 相关阅读:
    关于学习Knockoutjs--入门(一)
    h5移动端前端性能优化
    VS2015常用快捷键总结
    51nod1196 字符串的数量
    51nod1189 阶乘分数
    51nod1161 Partial Sums
    51nod1040 矩阵相乘结果的判断
    51nod 1125 交换机器的最小代价
    51nod 1120 机器人走方格 V3
    51nod 1040 最大公约数之和
  • 原文地址:https://www.cnblogs.com/babosa/p/9217747.html
Copyright © 2011-2022 走看看