当前位置:   article > 正文

FreeSWITCH实现AMR/AMR-WB编解码_amrwbenc

amrwbenc

1、写在前面

FreeSWITCH对AMR和AMR-WB两种编码格式默认为passthough状态,若想对AMR和AMR-WB进行编解码,需对mod_amr和mod_amrwb两个模块重新编译。

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

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

2、编译OpenCore AMR源码

下载OpenCore AMR源码,点击这里跳转,推荐使用版本为0.1.3。如下图:

在这里插入图片描述解压压缩包并进入源码根目录进行安装:

tar xzf opencore-amr-0.1.3.tar.gz

cd opencore-amr-0.1.3/

./configure --prefix=/root/libs

make && make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

增加AMR-WB支持

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

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

下载vo-amrwbenc压缩包,点击这里跳转,推荐版本为0.1.3,如下图:
在这里插入图片描述解压压缩包并进入源码根目录进行安装:

tar xzf vo-amrwbenc-0.1.3.tar.gz

cd vo-amrwbenc-0.1.3/

./configure --prefix=/root/libs

make && make install
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

.
├── 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

添加环境变量

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

vim ~/.bash_profile
新增下面一行:
export PKG_CONFIG_PATH=/root/libs/lib/pkgconfig:$PKG_CONFIG_PATH
保存退出
source ~/.bash_profile
  • 1
  • 2
  • 3
  • 4
  • 5

编译mod_amr

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

进入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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

编译mod_amrwb

进入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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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

配置路由

新增编码格式

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

<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"/>
  • 1
  • 2

呼叫路由

AMR/AMR-WB转PCMA/PCMU

    <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>
  • 1
  • 2
  • 3
  • 4
  • 5

PCMA/PCMU转AMR/AMR-WB

    <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>
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/950058
推荐阅读
相关标签
  

闽ICP备14008679号