1、编码库版本及下载地址:
ffmpeg:
aac:
fdk-aac-0.1.2
http://pan.baidu.com/s/1kTwympx
2、fdk-aac-0.1.2交叉编译
# ./configure --prefix=$PWD/out --host=arm-hisiv100nptl-linux
# make
# make install
# cp ./out /opt/arm/libfdk-aac -rf
3、ffmpeg-2.6.1d交叉编译
#./configure --prefix=$PWD/out --enable-cross-compile --arch=arm --target-os=linux --cc=arm-hisiv100nptl-linux-gcc --enable-shared --enable-libfdk-aac --extra-cflags=-I/opt/arm/libfdk-aac/include --extra-ldflags=-L/opt/arm/libfdk-aac/lib
#make
#make install
4、API应用编程
动态库编译规则:
arm-hisiv100nptl-linux-gcc -o audioEncoder audioEncoder.c -L ./ffmpeg/lib -L ./fdk-aac/lib -I ./ffmpeg/include/ -lavcodec -lavformat -lavutil -lswresample -lfdk-aac -pthread
静态库编译规则:
arm-hisiv100nptl-linux-gcc -o audioEncoder audioEncoder.c -I ./ffmpeg/include/ -I ./fdk-aac/include -pthread -lm ./ffmpeg/lib/libavformat.a ./ffmpeg/lib/libavcodec.a ./ffmpeg/lib/libavutil.a ./ffmpeg/lib/libswresample.a ./fdk-aac/lib/libfdk-aac.a
备注:
静态库的链接顺序可能会导致编译报错
静态库使用了一些标准的数学函数库,编译时一定要加上-lm,否则报错
5、调试
export LD_LIBRARY_PATH=./ffmpeg/lib
./audioEncoder
备注:
ffmpeg自带的aac编码处于试验阶段,pcm2aac需要第三方库的支持(libfdk-aac 、libfaac),例程中选择的是libfdk-aac;
加入第三方库支持,在configure时,一定要指定第三方库的头文件、库文件的链接路径;
交叉编译生成文件在当前编译目录下的out, ls ./out 可以看到编译生成lib、include等目录。