介绍:
opencore-amr框架实现了AMR-NB语音格式的编解码和AMR-WB的解码。采用C语言实现,应用于各个系统,如Linux, MacOS X, Windows等。
由于笔者需要在嵌入式平台下将PCM原始数据编码为AMR,所以决定使用opencore-amr。
编译:
X86平台
1.首先下载源码并解压,源码下载地址:https://sourceforge.net/projects/opencore-amr/files/opencore-amr/。里面包含0.1.3到0.1.5版本。笔者使用的是0.1.3,使用tar命令解压:
tar -xvf opencore-amr-0.1.3.tar.gz
2.opencore-amr使用configure脚本配置不同的参数。如果是x86平台,只需要指定‘--prefix’参数即可,这个参数指定了完成编译后的头文件和库的位置,必须是绝对路径。
./configure --prefix='/home/chenzh/opencore-amr/x86'
如需了解其他参数,可以使用 ./configure --help 命令查看。
3.配置无误后,直接编译安装即可。
make && make install
4.完成后会在 /home/chenzh/opencore-amr/x86 目录下生成两个目录include和lib。使用可以参考:https://github.com/gansidui/pcm_amr_codec
嵌入式平台
嵌入式平台需要指定交叉编译器的位置,其他的跟X86平台下编译一样。在第二步中改为:
./configure --host=arm-none-eabi --prefix='/home/chenzh/opencore-amr/arm'
使用--host指定编译平台的前提是系统的环境变量中有此交叉编译器,使用 echo $PATH 命令查看:

如果有“configure: error: C++ compiler cannot create executables”的错误提示,并且config.log中的报错信息为 ‘exit.c:(.text.exit+0x2c): undefined reference to `_exit'’,该错误的原因可能是g++编译器的版本不匹配,解决办法为在configure前增加编译参数'--specs=nosys.specs'。
export OTHER_LINK_OPTIONS="--specs=nosys.specs"
LDFLAGS=$OTHER_LINK_OPTIONS ./configure --host=arm-none-eabi --prefix='/home/chenzh/opencore-amr/arm'
接下来直接编译即可。
本文详细介绍了如何在X86及嵌入式平台上搭建Opencore-AMR语音编解码库,包括下载源码、配置参数、编译安装等步骤,特别针对嵌入式平台的交叉编译进行了说明。
&spm=1001.2101.3001.5002&articleId=85715260&d=1&t=3&u=2800415a26ed41af86bb4c44966fe250)
1098

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



