美文网首页
NDK编译faac并引入Android工程中

NDK编译faac并引入Android工程中

作者: FlyerGo | 来源:发表于2020-04-06 14:38 被阅读0次

    AAC就是高级音频编码(Advanced Audio Coding),出现于1997年,基于MPEG-2的音频编码技术,目的是取代MP3格式。

    2000年,MPEG-4标准出现后,AAC重新集成了其特性,为了区别于传统的MPEG-2 AAC又称为MPEG-4 AAC。相对于mp3,AAC格式的音质更佳,文件更小。
    特别适合用于流媒体传播。

    FAAC是一个MPEG-4和MPEG-2的AAC编码器,其特性是:轻量级、可移植性好、高效快速。

    x264作为视频编码界的佼佼者,而faac则是音频编码界的佼佼者,所以今天我们就来对faac进行交叉编译,以便后续在直播采集中使用faac对音频进行编码。

    今天我们使用的是linux系统为Centos 64位服务器。

    NDK的版本是r16。

    编译步骤

    首先进入faac的下载官网:https://www.audiocoding.com/downloads.html下载faac的源码并解压到特定目录。

    下载faac源码

    使用wget命令下载:

    //下载
    wget https://nchc.dl.sourceforge.net/project/faac/faac-src/faac-1.29/faac-1.29.9.2.tar.gz
    

    使用tar命令解压:

    tar xvf faac-1.29.9.2.tar.gz
    

    然后新建编译脚本build_faac.sh:

    #!/bin/bash
    
    PREFIX=`pwd`/android/armeabi-v7a
    
    # 将NDK的路径替换成你自己的NDK路径
    NDK_ROOT=/root/ndk/android-ndk-r16b
    
    # 设置工具链mac苹果电脑的是darwin-x86_64 而如果是linux的话则是linux-x86_64
    
    TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
    
    CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi
    
    FLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11  -O0  -fPIC"
    
    export CC="$CROSS_COMPILE-gcc --sysroot=$NDK_ROOT/platforms/android-21/arch-arm"
    
    export CFLAGS="$FLAGS"
    
    ./configure \
    --prefix=$PREFIX \
    --host=rm-linux-androideabi \
    --with-pic \
    --enable-shared=no
    
    make clean
    make install
    
    

    编译脚本完成后我们给它增加一下可执行权限:

    chmod +x build_faac.sh
    

    然后运行脚本./build_faac.sh等待编译完成即可。

    编译出静态库之后就可以把头文件以及点a文件拷贝到AS中引入到Android工程中使用了。如果你还不知道如何引用可以参考下这篇文章:《将ffmpeg引入到Android Studio工程中》,方法大同小异。

    至此我们直播采集端所需的库已经编译完了,后续将会使用这些编译完成采集端的相关功能,敬请期待。

    相关文章

      网友评论

          本文标题:NDK编译faac并引入Android工程中

          本文链接:https://www.haomeiwen.com/subject/rzcbphtx.html