[最详细的FAAC1.28交叉编译过程] AAC算法移植

折腾2个星期,就搞出这个

 

 

因为是要在hi3531开发板上做一次aac算法的编码,下面将在移植过程中遇到的坑记录一下

前提是你系统已经安装好你的交叉编译环境和已经下载了faac1.28
官方地址是
http://www.audiocoding.com/index.html

开发环境:Ubantu12.04.2
交叉编译器:hisiv300-linux-g++,hisiv300-linux-gcc
基本思路就是先将faac1.28编译成.so和.a库文件,然后调用faacEncEncode进行编码

其实别人已经写了一个 音频编解码·实战篇(1)PCM转至AAC(AAC编码)
http://blog.csdn.net/poechant/article/details/7435054#comments
上面这篇文章已经很详细了,有基础的指导,但是我在交叉编译的时候,也遇到不少坑
下面记录一下,有些命令会和上面这篇不一样,但是思路都一样

1.交叉编译faac1.28
./configure CXX=arm-hisiv300-linux-g++ CC=arm-hisiv300-linux-gcc --prefix=/usr/local/faac --host=arm-linux --with-mp4v2=no
make
(make有错误的mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)就是这个,去这个文件把这行注释掉也可以)
make install
(install 安装到了/usr/local/lib/里面)

 

linux下编译:

./configure  --prefix=/root/work/code/fdkaac/fdk-aac-0.1.3/linux --with-mp4v2=no

install安装好了之后,要注意将/usr/local/lib/ 添加到  /etc/ld.so.conf文件中,并ldconfig使能
建议每次install都用ldconfig使能一下(linux太坑,不知道哪些使能没使能)


2.编写应用程序调用faacEncEncode来进行aac编码
arm-hisiv300-linux-gcc faac.cpp -o faac -L/usr/local/lib -lfaac -I/usr/local/include -lsupc++
正确编译后,就可以把faac弄到arm开发板上运行了
运行前请将/usr/local/lib/中凡是有libfaac字样的静态库.a或动态库.so拷贝到开发板的/usr/local/lib/文件中
(有些arm开发板的系统中没有/etc/ld.so.conf文件,这个时候需要查看一下您的开发板系统的动态链接库地址
echo $LD_LIBRARY_PATH
如果显示没有/usr/local/lib/
用下面的指令将/usr/local/lib/添加到动态链接库地址中
export LD_LIBRARY_PATH=/usr/local/lib/
)


编译出现的问题:
1:undefined reference to '__cxa_end_cleanup'及 __gxx_personality_v0(这个破问题折腾我三天)
解决:http://blog.csdn.net/zz603976046/article/details/76886727
2.make有错误的mpeg4ip.h:126: error: new declaration ‘char* strcasestr(const char*, const char*)就是这个,去这个文件把这行注释掉也可以

 

 

 

暂时还未测试FAAC的效率,还没有弄清楚FFmpeg和faac的关系,准备后面再搞搞ffmpeg中的fdkaac

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值