Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >FreeSWITCH如何集成AMR/AMR-WB编解码

FreeSWITCH如何集成AMR/AMR-WB编解码

作者头像
杜金房
发布于 2024-04-11 12:26:14
发布于 2024-04-11 12:26:14
47900
代码可运行
举报
运行总次数:0
代码可运行

FreeSWITCHAMRAMR-WB两种编码格式默认为passthough状态,若想对AMRAMR-WB进行编解码,需对mod_amrmod_amrwb两个模块重新编译。

本文介绍通过源码编译所需的opencore-amrov-amrwbenc两个依赖库。当然也可使用yum等工具直接安装libopencore-amrnb.solibopencore-armwb.solibvo-amrwbenc.so

* 本文内涉及的所有路径,均可根据实际情况进行更改,不局限于root用户。

- AMR编译 -

下载OpenCore AMR源码,网址:https://sourceforge.net/projects/opencore-amr/files/opencore-amr,推荐使用版本为0.1.3。如下图:

解压压缩包并进入源码根目录进行安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar xzf opencore-amr-0.1.3.tar.gz
cd opencore-amr-0.1.3/
./configure --prefix=/root/libs
make && make install

- AMR-WB编译 -

若只需AMR编码格式,可直接跳过此步骤。

OpenCore AMR源码压缩包包含了AMR-NB编码和解码,但是AMR-WB只支持编码,所以我们需要增加AMR-WB解码能力。

下载vo-amrwbenc压缩包,网址:https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc,推荐版本为0.1.3,如下图:

解压压缩包并进入源码根目录进行安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar xzf vo-amrwbenc-0.1.3.tar.gz
cd vo-amrwbenc-0.1.3/
./configure --prefix=/root/libs
make && make install

至此,依赖库编译完成,opencore-amrov-amrwbenc均安装在了/root/libs文件夹下,目录树如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.
├── include
│   ├── opencore-amrnb
│   │   ├── interf_dec.h
│   │   └── interf_enc.h
│   ├── opencore-amrwb
│   │   ├── dec_if.h
│   │   └── if_rom.h
│   └── vo-amrwbenc
│       └── enc_if.h
└── lib
    ├── libopencore-amrnb.a
    ├── libopencore-amrnb.la
    ├── libopencore-amrnb.so -> libopencore-amrnb.so.0.0.3
    ├── libopencore-amrnb.so.0 -> libopencore-amrnb.so.0.0.3
    ├── libopencore-amrnb.so.0.0.3
    ├── libopencore-amrwb.a
    ├── libopencore-amrwb.la
    ├── libopencore-amrwb.so -> libopencore-amrwb.so.0.0.3
    ├── libopencore-amrwb.so.0 -> libopencore-amrwb.so.0.0.3
    ├── libopencore-amrwb.so.0.0.3
    ├── libvo-amrwbenc.a
    ├── libvo-amrwbenc.la
    ├── libvo-amrwbenc.so -> libvo-amrwbenc.so.0.0.4
    ├── libvo-amrwbenc.so.0 -> libvo-amrwbenc.so.0.0.4
    ├── libvo-amrwbenc.so.0.0.4
    └── pkgconfig
        ├── opencore-amrnb.pc
        ├── opencore-amrwb.pc
        └── vo-amrwbenc.pc

- 添加环境变量 -

由于opencore-amrvo-amrwbenc安装路径为我们自定义路径(推荐将两个库安装在同一路径,路径配置在configure时通过--prefix指定,本次安装均为/root/libs),需配置环境变量告知FreeSWITCH依赖库位置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim ~/.bash_profile
新增下面一行:
export PKG_CONFIG_PATH=/root/libs/lib/pkgconfig:$PKG_CONFIG_PATH
保存退出
source ~/.bash_profile

- 编译mod_amr -

至此,依赖库已经安装完成,可开始进行mod_amr模块的编译。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
进入FreeSWITCH源码目录,本次安装过程中为/root/freeswitch-1.8.5
cd /root/freeswitch-1.8.5
重新生成mod_amr模块的Makefile文件
./bootstrap.sh -j
./configure --prefix=/root/freeswitch-bin
cd src/mod/codecs/mod_amr
make
make install

至此mod_amr编译完成,fs_cli进入FreeSWITCH console前台,加载mod_amr模块,即可。

- 编译mod_amrwb -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
进入FreeSWITCH源码目录,本次安装过程中为/root/freeswitch-1.8.5
cd /root/freeswitch-1.8.5
重新生成mod_amrwb模块的Makefile文件
./bootstrap.sh -j
./configure --prefix=/root/freeswitch-bin
cd src/mod/codecs/mod_amrwb
make
make install

至此mod_amrwb编译完成,fs_cli进入FreeSWITCH console前台,加载mod_amrwb模块,即可。

- 配置路由 -

  • 新增编码格式

由于FreeSWITCH默认编码格式内没有AMRAMR-WB,需要修改vars.xmlglobal_codec_prefsoutbound_codec_prefs两个配置项,用于新增编码格式。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,PCMU,PCMA,H264,AMR,AMR-WB"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,PCMU,PCMA,H264,AMR,AMR-WB"/>

修改完成后需要reloadxml生效。

  • 呼叫路由
  • AMR/AMR-WB转PCMA/PCMU
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="bridge" data="{absolute_codec_string='PCMA\,PCMU'}user/$1"/>
</condition>
</extension>
  • PCMA/PCMU转AMR/AMR-WB
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="bridge" data="{absolute_codec_string='AMR\,AMR-WB'}user/$1"/>
</condition>
</extension>

至此,您可以愉快的使用FreeSWITCHAMR/AMR-WB进行编解码了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeSWITCH中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何使用iOS 开发证书 和 Profile 文件
简介: 现在有个上架的辅助工具Appuploader,可以实现在windows,linux或mac上,不需要应用程序加载器和mac计算机,就可以发布app到appstore,而且免费使用。
爱学iOS的小麦子
2023/05/09
5480
iOS上架App Store之Appuploader制作描述文件和证书
公司采用AppCan平台开发了移动端应用,由于公司没有配备苹果电脑,所以为了上线iosAPP查了很多资料,装了个虚拟机卡的要死,操作一步卡死半天,严重影响效率,最后终于发现了一个很好用的工具AppUploader。终于解决了这个问题。不用苹果电脑直接在windows下上传ipa到appstore,废话不多说直接讲怎么操作
iOS Magician
2023/03/22
7720
iOS上架App Store之Appuploader制作描述文件和证书
iOS应用提交上架的最新流程
本篇博客介绍了iOS应用程序上架的最新流程。包括上架基本需求资料、证书的创建和使用、测试设备的添加、描述文件的创建、打包、审核等步骤。
爱学iOS的小麦子
2024/02/04
2760
苹果iOS app上架流程
一般app开发需要经过确定功能需求,确定UI设计,正式开发,进行测试等流程,然后再上架到应用商店。
iOS Magician
2023/03/22
4780
苹果iOS app上架流程
苹果证书p12和描述文件的创建方法
https://blog.csdn.net/handsome0916/article/details/113779348
爱学iOS的小麦子
2023/05/09
8580
苹果证书p12和描述文件的创建方法
iOS上架app store详细教材
1、安装iOS上架辅助软件Appuploader 2、申请iOS发布证书(p12) 3、申请iOS发布描述文件(mobileprovision) 4、打包ipa 5、上传ipa到iTunes Conn
爱学iOS的小麦子
2022/11/24
6640
iOSApp上架流程
注意:下载AU后需安装java8运行环境才能启动;安装好了最新Java8运行环境,解压AU软件包,无需安装,Windows 64位系统点击appuploader.exe启动;如果是Linux/Windows 32位系统或Mac系统双击appuploader.jar即可启动;直接用苹果账号即可登录使用
爱学iOS的小麦子
2023/01/05
8620
APP Uploader-iOS APP上架到App Store的辅助工具
APP Uploader APP开发助手-iOS APP上架到App Store的辅助工具,解决iOS APP上架繁琐费时的情况,帮助跨平台APP开发者上架苹果应用,在没有配置Mac苹果机的情况,实现iOS证书申请,创建iOS开发者证书、iOS发布证书等各类证书,iOS开发者在Windows、Linux或Mac系统中上传IPA到App Store,简化iOS APP上架流程!在Windows pc中轻松快速上架你的APP。
iOS Magician
2023/03/22
5730
APP Uploader-iOS APP上架到App Store的辅助工具
app上架需要准备什么以及上架流程
而安卓市场又分为:第三方市场(如:应用宝、360手机助手、豌豆荚),和手机厂商市场(如:华为、OPPO、VIVO、小米等)。​
iOS程序应用
2023/04/17
1.9K0
app上架需要准备什么以及上架流程
2022完整iOS APP发布App Store上架流程指南
如果你是新手,将在这里清晰发布到App Store整个上架流程,还有相应的流程解决方案。 如果你上架过iOS APP,这里会了解到有更快捷的上架过程。 上架iOS最基本需要一个付费的开发者账号,还没有的话申请一个或者借用。 通常也还需要一台Mac电脑,不过这里介绍到不用Mac在Windows系统中直接发布iOS APP到App Store。 如果没有Mac,也无所谓。 申请开发者账号介绍
iOS Magician
2023/03/21
1.6K0
2022完整iOS APP发布App Store上架流程指南
2022最新苹果APP上架App Store流程(超详细)
APP IDs在后面创建发布文件,创建APP时都要用到。(appid非常重要,整个上架流程就是用appid关联在一起)
iOS程序应用
2022/11/01
5.8K1
iOS打包IPA教程
IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,使用appuploader,只需要注册苹果普通的账
iOS Magician
2023/10/11
7040
iOS打包IPA教程
2022最新整理iOS app上架app详细教程
APP IDs在后面创建发布文件,创建APP时都要用到。(appid非常重要,整个上架流程就是用appid关联在一起)
爱学iOS的小麦子
2022/11/24
6070
iOS上架App Store详解(图文)
通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestFlight测试然后提交审核的完整流程!
iOS程序应用
2023/03/17
1.4K0
苹果app上架流程之傻瓜式教程剖析
使用App Uploader工具创建iOS发布证书和描述文件,下载P12证书文件和描述文件。
iOS程序应用
2022/11/01
5350
苹果app上架流程之傻瓜式教程剖析
iOS上架app store详细教材
1、安装iOS上架辅助软件Appuploader 2、申请iOS发布证书(p12) 3、申请iOS发布描述文件(mobileprovision) 4、打包ipa 5、上传ipa到iTunes Conn
iOS程序应用
2023/04/17
5760
iOS上架app store详细教材
Ios上架app无需688,xcode打包导出IPA,供人内测
众所周知,在开发苹果应用时需要使用签名(证书)才能进行打包安装苹果IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架appstore需求,对于苹果开发者账号认证需要支付688,真的是极大的浪费,经过一番百度,APP Uploader这款软件,真是丝滑啊,只需要注册苹果个人开发者账号,不需要688认证,就可以打包自己开发的ios应用,提供给他人测试,废话不多讲,下面是详细教程:
iOS程序应用
2023/02/23
1.3K0
iOS App 上架App Store及提交审核详细教程
前四布我们之前都做了,详见这篇博客:利用Appuploader在window上申请IOS开发所需要的证书及描述文件,我们主要看后面几步。
爱学iOS的小麦子
2023/03/09
2.4K0
iOS不想上架?
本文介绍了如何从Mac OS X Catalina将IPA文件上传到App Store的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
iOS程序应用
2023/01/06
4680
ios app真机测试到上架App Store详细教程-必看
通过本篇教程,可以学习到ios证书申请和打包ipa测试上架的完整流程,中途可能会遇到一些报错,一般在教程对常见错误都有解释,仔细看看,不清楚可以联系技术支持或者加群提问。
iOS程序应用
2023/05/07
8030
ios app真机测试到上架App Store详细教程-必看
推荐阅读
相关推荐
如何使用iOS 开发证书 和 Profile 文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验