交叉工具编译ARM平台Opus音频库

2019-07-12 20:14发布

     最近项目中使用到opus音频库,这是一款开源的高效的音频库。其优点相对于AAC编码来说,编码效率高,据说相同带宽下,音频质量完爆AAC,而高带宽下音质接近原始音频(不喜勿喷^_^)。详情及源码见官网http://www.opus-codec.org/      源码可以直接编译x86平台的库,想要编译ARM平台下,需一番配置。      首先配置交叉编译工具,交叉编译工具链网上有一大堆,Google官网也有官方的,请自行下载。 sh ~/sdk/android-ndk-r14b/build/tools/make-standalone-toolchain.sh --platform=android-19 --install-dir=/tmp/my_toolchain      请注意第一行后面的连接符,platform默认使用android-19,可根据实际情况自行修改。      创建一个env.opus文件,内容如下: #!/bin/sh export PATH=/tmp/my_toolchain/bin:$PATH export CC=arm-linux-androideabi-gcc export CXX=arm-linux-androideabi-g++ ./configure --host=arm-linux --enable-fixed-point --disable-float-api CFLAGS="-O3 -mfpu=neon -mfloat-abi=softfp" HAVE_ARM_NEON_INTR=1 为了提高库的运行效率,分别做了如下优化:启用定点数运算,禁用浮点数运算,O3优化,neon优化,使用软浮点库进行浮点运算。 PS: 从Opus提供的编译脚本来看,要彻底开启neon以后,还需要添加“HAVE_ARM_NEON_INTR=1” 本地实测编译通过,可正常使用(只测试了静态库,动态库自行测试)。