轉載地址:https://blog.csdn.net/zz603976046/article/details/77683543
前面寫一篇文章介紹如何編譯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