前面写一篇文章介绍如何编译FAAC1.28
http://blog.csdn.net/zz603976046/article/details/76904265
****************************************************************************************************************************
下面是别人写的优化,我测试了好像效果不咋样
FAAC1.28的下载地址:http://www.audiocoding.com/downloads.html
如何编译:
1../configure --host=arm-hisiv100nptl-Linux --prefix=/home/ssy/lib
2.make
3.make install
优化
在不修改源码的情况下,faac的内存占用非常高,每路音频在13M左右。如果多路音频的话,内存将很快耗尽。
搜索MAX_CHANNELS的定义,默认是6 和64,全部改成1(一般都是单声道)。
重新编译,运行,内存占用降为2.5M左右。
**********************************************************************************************************************************************下面是我测试有效的
因为多数情况下我们需要运行在ARM上进行实时编码发送,原来在HI3531平台上运行速度编码一次需要20ms,现做一个编译上的优化后速度变为10ms
使用以下命令编译
cd faac-1.28
make clean
#./configure CXX=arm-hisiv300-linux-g++ CC=arm-hisiv300-linux-gcc --host=arm-linux --with-mp4v2=no
./configure CXX=arm-hisiv300-linux-g++ CC=arm-hisiv300-linux-gcc --host=arm-linux --with-mp4v2=no CFLAGS="-mfpu=vfp -mfloat-abi=softfp" CXXFLAGS="-mfpu=vfp -mfloat-abi=softfp"
make
make install
编译应用程序
OBJ_BIN=./aac_lib_v300/faac_v300
SRC_FILE=faac_test.cpp
arm-hisiv300-linux-gcc $SRC_FILE -o $OBJ_BIN -L/usr/local/lib -lfaac -I/usr/local/include -lsupc++ -mfpu=vfp -mfloat-abi=softfp
核心就在于使用-mfpu=vfp -mfloat-abi=softfp来是linux编译float计算优化
优化前PCM转AAC一段37s左右的文件耗时约68s接近70s左右
优化后我PCM转AAC一段37s左右的文件耗时约34.696712 s