转载地址:https://blog.youkuaiyun.com/zz603976046/article/details/77683543
前面写一篇文章介绍如何编译FAAC1.28
http://blog.youkuaiyun.com/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

本文详细介绍了如何通过不修改源码的方式优化FAAC1.28编译,使其在ARM平台上的实时编码速度从20ms提升到10ms,包括使用特定编译命令和选项实现内存占用显著降低。
1975

被折叠的 条评论
为什么被折叠?



