首页 > 其他分享 >FreeSWITCH添加iLBC编码及转码

FreeSWITCH添加iLBC编码及转码

时间:2023-04-16 11:23:33浏览次数:53  
标签:编码 转码 libilbc ilbc iLBC libtool FreeSWITCH

操作系统 :CentOS 7.6_x64

FreeSWITCH版本 :1.10.9

一、安装ilbc库

从第三方库里下载指定版本:

git clone https://freeswitch.org/stash/scm/sd/libilbc.git

如果下载过慢,可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230416 获取。 编译及安装步骤如下:
./bootstrap.sh
./configure
make
make install

安装成功:

 如果遇到如下错误:

libtool: Version mismatch error.  This is libtool 2.4.6, but the
libtool: definition of this LT_INIT comes from libtool 2.4.2.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6

libilbc目录下会自动生成libtool文件,将系统目录的libtool复制过来即可:

 此外,通过 yum install ilbc-devel.x86_64 安装的方式会报错:

二、编译mod_ilbc模块

1、更新ilbc库

可通过如下方式配置libilbc库:

ln -sf /usr/local/lib/libilbc.so.0.0.2 /lib64/libilbc.so
ln -sf /usr/local/lib/libilbc.so.0.0.2 /lib64/libilbc.so.0

2、打开FreeSWITCH编译配置项

编辑源码目录的modules.conf文件,去掉ilbc的注释:

#codecs/mod_ilbc //去掉这个注释的#号

 3、重新配置编译FreeSWITCH

源码目录执行如下命令:

./devel-bootstrap.sh && ./configure && make && make install

如果编译FreeSWITCH遇到问题,可参考这篇文章:

CentOS7环境源码安装freeswitch1.10

4、加载mod_ilbc模块

编辑 conf/autoload_configs/modules.conf.xml 文件,添加如下内容:

<load module="mod_ilbc"/>

重启FreeSWITCH或执行重新load操作:

 如果加载不报错,则添加iLBC编码成功。

三、编码测试

 1、开启iLBC编码支持及转码

 文件: vars.xml

1)开启iLBC编码支持

<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8,iLBC"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8,iLBC"/>

2)开启转码

添加如下内容:

<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>

 2、iLBC编码测试

1)配置话机

软电话A的语音编码只配置iLBC:

 软电话B的语音编码只配置PCMU:

 通话效果:

 A拨打B,呼叫成功。

看日志,发现Fs和A协商了iLBC编码,然后和B协商了PCMU编码。

抓包结果如下:

 四、资源获取

本文涉及资源可从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230416 获取。

 

标签:编码,转码,libilbc,ilbc,iLBC,libtool,FreeSWITCH
From: https://www.cnblogs.com/MikeZhang/p/ilbc20230416.html

相关文章

  • 字符转码编码
    importrandomfromstringimportlowerchangdi_list=[]defget_changdi():   path="changdi.txt"   txt=open(path,"r")   #txt=open(path,"r",encoding="utf-8-sig")   forlineintxt.readlines():       line=l......
  • freeswitch媒体协商的优先级方案
      概述freeswitch是一款简单好用的VOIP开源软交换平台。不同的媒体格式各有优缺点,实际环境中的应用要根据线路和客户的实际需求确定。本文中介绍一种较为通用的媒体配置方案,可以适配大部分场景。环境centos:CentOS release7.0(Final)或以上版本freeswitch:v1.10.7GC......
  • ffmpeg分辨率更改和无损压缩转码(h264 h265 lossless)
    测试的版本ffmpeg-versionffmpegversionn6.0Copyright(c)2000-2023theFFmpegdevelopersbuiltwithgcc11(Ubuntu11.3.0-1ubuntu1~22.04)configuration:--toolchain=hardened--libdir=/usr/lib/x86_64-linux-gnu--incdir=/usr/include/x86_64-linux-gnu--arch=amd......
  • iOS PCMAudio 与 g711a/g711u 的互转码
    iOSG711编码G.711是一种由国际电信联盟(ITU-T)制定的音频编码方式,又称为ITU-TG.711。它是国际电信联盟ITU-T定制出来的一套语音压缩标准,它代表了对数PCM(logarithmicp......
  • FreeSwitch的基本了解和简单使用
    一、安装FreeSwitch系统FreeSwitch本身是跨平台的,作为学习,此处使用windows安装方式,点击下载windows版本的安装包,进行傻瓜式安装,安装后目录结构如下: 其中各文件......
  • Node-RED中实现选择照片并转码Base64并显示
    场景Node-RED简介与Windows上安装、启动和运行示例:Node-RED简介与Windows上安装、启动和运行示例_霸道流氓气质的博客-noderedwindowsNode-RED怎样导出导入流程为json文件:N......
  • Html字符转码
    标记十进制编码编码™&#8482; € &euro;Space&#32;&nbsp;!&#33; "&#34;"#&#35; ......
  • iOS借用WKWebView将svg转码为png
    #import"WKSVGConvert.h"#import<WebKit/WebKit.h>@interfaceWKSVGConvert()<WKNavigationDelegate>@property(nonatomic,strong)WKWebView*webView;@prop......
  • php json_encode使用中文不转码
    PHP转JSON,中文会被转码成unicode,使用常量JSON_UNESCAPED_UNICODE可以使中文原样输入echojson_encode("中文");//Output:"\u4e2d\u6587"echojson_encode("中文",J......
  • 使用iconv命令批量原地转码文件
    目录一、iconv简述二、iconv原地转码命令三、我工作中遇到的问题问题场景:解决方案:一、iconv简述​ 日常工作中我们需要将windows生成的文件上传到Linux系统,有时候会因......