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.6.19.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"/> ![](https://s1.51cto.com/images/blog/201805/23/dc837eccd7fc5093fa6fa3637694bf7c.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 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"/> ![](https://s1.51cto.com/images/blog/201805/23/080dc06c1923813d45b19332e21cde30.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 3.重啓FreeSWITCH service freeswitch restart 或者也可以進入FreeSWITCH控制界面,命令加載mod_bcg729模塊 fs_cli unload mod_g729 load mod_bcg729 至此就配置完成了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章