opencore-amr移植和使用(PCM转AMR-NB)

介绍:

    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'

接下来直接编译即可。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值