一、添加g729編碼及開(kāi)啟轉(zhuǎn)碼
1、獲取bcg729源碼
GitHub地址:https://github.com/xadhoom/mod_bcg729
?下載命令:
wget https://github.com/xadhoom/mod_bcg729/archive/refs/tags/v1.0.5.tar.gz
2、編譯及安裝bcg729編碼
1)啟動(dòng)編譯環(huán)境:
docker run --name fs --network host -t -d fs:base /bin/bash
?說(shuō)明:該環(huán)境已經(jīng)安裝freeswitch 1.10.9,具體編譯過(guò)程可參考我在文章開(kāi)頭給出的參考信息。
2)復(fù)制及解壓文件
docker cp bcg729_v1.0.5.tar.gz fs:/usr/src docker exec -it fs bash cd /usr/src/ tar zxf bcg729_v1.0.5.tar.gz
3)編譯及安裝
編譯過(guò)程會(huì)從這里下代碼:
git clone https://github.com/BelledonneCommunications/bcg729.git
需要安裝git
apt install git
編譯及安裝:
make && make install
也可在宿主機(jī)系統(tǒng)下載后復(fù)制到docker容器,如果下載過(guò)慢,可直接使用我下載及編譯好的文件:
?編譯及安裝過(guò)程:
docker cp mod_bcg729_all fs:/root/ docker exec -it fs bash cd /root/mod_bcg729_all/ make && make install
3、加載bcg729編碼
文件:conf/autoload_configs/modules.conf.xml
修改內(nèi)容:
<!--load module="mod_g729"/--> <load module="mod_bcg729"/>
控制臺(tái)查看編碼:
show codec
4、開(kāi)啟bcg729轉(zhuǎn)碼
文件:conf/vars.xml
修改或添加內(nèi)容:
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,G729,H264,VP8"/> <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,G729,H264,VP8"/> <X-PRE-PROCESS cmd="set"data="media_mix_inbound_outbound_codecs=true"/>
文件:
sip_profiles/internal.xml
sip_profiles/external.xml
修改或添加內(nèi)容:
<param name="inbound-late-negotiation" value="false"/> <param name="disable-transcoding" value="false"/>
5、其它
如果測(cè)試過(guò)程中遇到30秒掛機(jī)的情況,設(shè)置下rtp地址為內(nèi)網(wǎng):
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=192.168.137.33"/> <X-PRE-PROCESS cmd="set" data="external_sip_ip=192.168.137.33"/>
二、從pcap提取音頻文件
?提取過(guò)程和提取pcma格式音頻類似,相關(guān)工具可從這篇文章提供的渠道獲?。?/p>
https://www.cnblogs.com/MikeZhang/p/20230326-pcapToWav.html
這里簡(jiǎn)單描述下區(qū)別。
1、Windows 10環(huán)境使用wireshark提取rtp音頻
https://wiki.wireshark.org/HowToDecodeG729
使用wireshak 2.6.0以后的版本支持解析g729格式。
?解析效果如下:
?導(dǎo)出wav文件:
?在彈出的界面輸入文件路徑即可。
2、Windows 10環(huán)境使用python提取rtp音頻
使用python導(dǎo)出rtp音頻大概分為以下兩個(gè)步驟:
1)使用libpcap從pcap文件中提取raw格式的音頻;
libpcap的使用可以參考這篇文章:
https://www.cnblogs.com/MikeZhang/p/pythonUseLibpcap20221029.html
2)使用ffmpeg將raw格式轉(zhuǎn)換成需要的格式(比如mp3)
可從ffmpeg官方網(wǎng)站下載,也可從文末提供的資源地址獲取。
python示例代碼:
完整示例代碼可以從如下途徑獲?。?/span>
三、運(yùn)行效果
?1、bcg729轉(zhuǎn)碼運(yùn)行效果
1000分機(jī):僅支持g729編碼
1001分機(jī):僅支持PCMA編碼
?轉(zhuǎn)碼效果:
?g729轉(zhuǎn)碼運(yùn)行效果視頻可以從如下途徑獲?。?/span>
2、pcap音頻提取效果
wireshark提取效果:
?python提取效果:
?g729音頻提取運(yùn)行效果視頻可以從如下途徑獲?。?/span>
四、資源下載
本文涉及源碼和文件,可以從如下途徑獲?。?/p>
關(guān)注微信公眾號(hào)(聊聊博文,文末可掃碼)后回復(fù) 20230722 獲取。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-595533.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-595533.html
到了這里,關(guān)于FreeSWITCH添加g729編碼及pcap音頻提取的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!
本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!