FreeSWITCH之配置G729转码
在互联网大数据时代的背景下,作为服务器程序,高并发尤为重要,线路带宽资源就显得更加弥足珍贵了。目前比较流行语音编码有2种G711、G729。由于语音需要采用上下行对等的宽带,G711每线需要大约90kbit/s/S的带宽,而G729每线仅需要30kbit/s/S的带宽。所以采用G729编码就节约了大量带宽。
FreeSWITCH默认是不支持G729转码的,商业版本的G729效率是最高的,不过要10刀1个并发,相信很少公司会舍得采用这么高的成本去做业务。这里介绍一下freeswitch配置开源的bcg729进行转码的方法:
1.准备工作:与当前运行的FreeSWITCH版本一致的源码一份,Linux 虚拟机
2.编译bcg729:
2.1 在FreeSWITCH官网下下载源码 [freeswitch-1.10.06.tar.gz请添加链接描述](http://files.freeswitch.org/releases/freeswitch/freeswitch-1.6.19.tar.gz)
解压源码到/usr/src/freeswitch-1.6.19
2.2 进入源码../src/mod/endpoints目录
cd /usr/src/freeswitch-1.6.19/src/mod/endpoints
2.3 Git检出FreeSWITCH适用的G729模块(这部分源码是对BCG729进行FreeSWITCH的适配)
git clone https://github.com/xadhoom/mod_bcg729.git
2.4 将mod_bcg729改名为mod_g729
mv mod_bcg729 mod_g729
2.5 返回FreeSWITCH源码主目录,执行配置
./configure
2.6 进入../src/mod/endpoints/mod_g729目录,并执行编译
cd /usr/src/freeswitch-1.6.19/src/mod/endpoints/mod_g729
make
编译时如果提示找不到头文件,可以将FreeSWITCH源码include目录下的对应头文件复制到
../mod_g729/bcg729/include/目录,还有其他找不到的头文件可以使用find命令
在FreeSWITCH源码目录下搜索,然后复制到../mod_g729/bcg729/include/目录,然后再重新编译
2.7 编译完成后,将mod_bcg729.so复制到FreeSWITCH的库目录,也可以直接替换FreeSWITCH的库目录下的G729库文件
cp mod_bcg729.so /usr/lib/freeswitch/mod/
2.8 修改/etc/freeswitch/vars.xml
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=G729,OPUS,G722,PCMU,PCMA,VP8"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=G729,OPUS,G722,PCMU,PCMA,VP8"/>
<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true"/>
2.9 配置/etc/freeswitch/sip_profile/internal.xml
<param name="disable-transcoding" value="false"/>注释或者写成false,这行直接代表freeswitch是否开启转码功能
<param name=”inbound-late-negotiation” value=”false”/>
<param name=”inbound-zrtp-passthru” value=”false”/>
2.10 配置/etc/freeswitch/autoload_configs/modules.conf.xml启动自动加载mod_bcg729
<load module="mod_bcg729"/>
3.重启FreeSWITCH
service freeswitch restart
或者也可以进入FreeSWITCH控制界面,命令加载mod_bcg729模块
fs_cli
unload mod_g729
load mod_bcg729
至此就配置完成了
FreeSWITCH之配置G729转码相关推荐
- Freeswitch如何支持G729转码开源版本
在目前freeswitch各种业务都开始需要支持高并发的背景下,线路带宽的占用成为很多客户的考虑范围,目前比较流行语音编码有2种G711.G729.由于语音需要采用上下行对等的宽带,G711每线需要大 ...
- Maven 的相关配置【源码下载、镜像源修改】
PS:网上相关配置很多,这里仅做自己的一个配置在线备份,所以比较简略. 1. Maven 配置下载源码 和 JavaDoc 开发中,经常需要查看某个不太熟悉的类的源码,甚至是该类的 DOC 文档,在 ...
- 如何在后台配置中找到某个具体配置的事务码
经常有人问到,在定制后台配置(事务码 SPRO)中,如何根据某个配置项目找到其对应的事务码. 实事上,并非所有后台配置项目都对应的有事务码.但是,我们可以根据 SAP 的命名规范找到其中的一些. 操作 ...
- 《一步一步看源码:Nacos》框架源码系列之一(其1,配置服务源码)
Nacos源码 因为最近项目在做容器化处理,容器化后涉及到不同进程对同一个文件的读写,考虑到可能会存在同一文件的配置文件,可能会把彼此覆盖掉,所以这里学习一下Nacos源码. 整体结构图 这边 ...
- 【SpringBoot】最新版2019Spring Boot配置解析,源码解析(速成SpringBoot)——学习笔记版【2】
SpringBoot配置文件 文章目录 SpringBoot配置文件 四.配置文件 1.简介 2.YAML用法 2.1 简介 2.2语法 3.为属性注入值 3.1使用.yml配置文件 3.1编写.ym ...
- 知其所以然之Nacos配置中心源码浅析
文章目录 引例 NacosConfigService的初始化 ServerHttpAgent的构造函数解析 ServerListManager的构造函数解析 ConfigFilterChainMana ...
- Apollo 配置中心源码分析
Apollo 配置中心源码分析 Apollo是携程开源的一款分布式配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用 ...
- FreeSwitch配置开启转码功能及安装G729语音编码
一键安装安装G729 测试环境 CentOS 6.9 64bit FreeSwitch 1.6.x 安装G729模块前请安装好FreeSwitch 下载脚本并执行安装 wget file.qzlink ...
- Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee
目前项目使用的jenkins 自动化部署的还是比较多的 ,所以趁着脑瓜子还清醒,来写一下如何使用 jenkins 使用码云更新代码后,重新构建就是最新的代码,费话不多少了 直接上货, 首先要做一下准备 ...
最新文章
- JavaScript 方法传参
- MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题
- 神策学堂“训练营+特训营”,种子学员招募中,来一起出圈呀!
- u-boot移植重要问题说明
- 【转】C#实现SM3国密加密
- SpringBoot2.1.5(18)--- 国际化配置,SpringBoot Locale 国际化使用方法
- Asp.Net MVC 自定义登录过滤器
- 从零开始,CentOS6安装ghost博客
- 兰花草c语言编码蜂鸣器,蜂鸣器奏乐-多种音乐分享
- 了解STM32的内部FLASH空间
- Unity-WebGL遇到的各种坑(一)
- 看卡辛斯基的警告 让我想起 人类简史
- 怎么把webm转换成mp4?步骤教程
- 【autojs】Auto.js Pro安卓QQ语音红包秒抢挂免费脚本源码
- python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~
- 我的世界java版服务器hpy,我的世界Java版21w05a
- 解读 | 赛迪“区块链赋能实体经济推进计划”
- linux安装中文字体 yum,给CentOS安装中文字体(转)
- python 多元线性回归的系数检验 t p值_多元线性回归检验t检验(P值),F检验,R方等参数的含义...
- 使用 Tesseract.js 在浏览器中进行 OCR