FreeSWITCH添加g729编码及pcap音频提取

这篇具有很好参考价值的文章主要介绍了FreeSWITCH添加g729编码及pcap音频提取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

操作系统 : debian 11 (bullseye,docker)、Windows10_x64
FreeSWITCH版本 :1.10.9
Docker版本:23.0.6
Python 版本  :  3.9.2
 
日常工作中,有时候会遇到g729编码的相关内容,但FreeSWITCH默认是不支持g729编码转码的,今天记录下使用开源的 bcg729 进行g729转码的过程(本文仅作技术研究,商业使用请购买商业版本),以及如何从g729格式的pcap数据中提取音频文件。
本文基于docker打包的debian 11环境,构建base包的过程可以参考我之前的文章:
https://www.cnblogs.com/MikeZhang/p/dockerPackFs20230617.html 

一、添加g729编码及开启转码

1、获取bcg729源码

GitHub地址:https://github.com/xadhoom/mod_bcg729

FreeSWITCH添加g729编码及pcap音频提取

 下载命令:

wget https://github.com/xadhoom/mod_bcg729/archive/refs/tags/v1.0.5.tar.gz

2、编译及安装bcg729编码

1)启动编译环境:

docker run --name fs --network host -t -d fs:base /bin/bash

FreeSWITCH添加g729编码及pcap音频提取

 说明:该环境已经安装freeswitch 1.10.9,具体编译过程可参考我在文章开头给出的参考信息。

2)复制及解压文件

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)编译及安装

编译过程会从这里下代码:

git clone https://github.com/BelledonneCommunications/bcg729.git

需要安装git

apt install git

编译及安装:

make && make install

也可在宿主机系统下载后复制到docker容器,如果下载过慢,可直接使用我下载及编译好的文件:

FreeSWITCH添加g729编码及pcap音频提取

 编译及安装过程:

docker cp mod_bcg729_all fs:/root/
docker exec -it fs bash
cd /root/mod_bcg729_all/
make && make install
可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230722 获取。

3、加载bcg729编码

文件:conf/autoload_configs/modules.conf.xml

修改内容:

<!--load module="mod_g729"/-->
<load module="mod_bcg729"/>

控制台查看编码:

show codec

FreeSWITCH添加g729编码及pcap音频提取

4、开启bcg729转码

文件:conf/vars.xml
修改或添加内容:

<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

修改或添加内容:

<param name="inbound-late-negotiation" value="false"/>
<param name="disable-transcoding" value="false"/>

5、其它

如果测试过程中遇到30秒挂机的情况,设置下rtp地址为内网:

<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提取音频文件

 提取过程和提取pcma格式音频类似,相关工具可从这篇文章提供的渠道获取:

https://www.cnblogs.com/MikeZhang/p/20230326-pcapToWav.html

这里简单描述下区别。

1、Windows 10环境使用wireshark提取rtp音频

https://wiki.wireshark.org/HowToDecodeG729

使用wireshak 2.6.0以后的版本支持解析g729格式。

FreeSWITCH添加g729编码及pcap音频提取

 解析效果如下:

FreeSWITCH添加g729编码及pcap音频提取

 导出wav文件:

FreeSWITCH添加g729编码及pcap音频提取

 在弹出的界面输入文件路径即可。

2、Windows 10环境使用python提取rtp音频

使用python导出rtp音频大概分为以下两个步骤:

1)使用libpcap从pcap文件中提取raw格式的音频;

libpcap的使用可以参考这篇文章:

https://www.cnblogs.com/MikeZhang/p/pythonUseLibpcap20221029.html

2)使用ffmpeg将raw格式转换成需要的格式(比如mp3)

可从ffmpeg官方网站下载,也可从文末提供的资源地址获取。

python示例代码:

FreeSWITCH添加g729编码及pcap音频提取

完整示例代码可以从如下途径获取:

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

三、运行效果

 1、bcg729转码运行效果

1000分机:仅支持g729编码
1001分机:仅支持PCMA编码

FreeSWITCH添加g729编码及pcap音频提取

 转码效果:

FreeSWITCH添加g729编码及pcap音频提取

 g729转码运行效果视频可以从如下途径获取:

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

2、pcap音频提取效果

wireshark提取效果:

FreeSWITCH添加g729编码及pcap音频提取

 python提取效果:

FreeSWITCH添加g729编码及pcap音频提取

 g729音频提取运行效果视频可以从如下途径获取:

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

四、资源下载

本文涉及源码和文件,可以从如下途径获取:

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

FreeSWITCH添加g729编码及pcap音频提取

 文章来源地址https://www.toymoban.com/news/detail-595533.html

到了这里,关于FreeSWITCH添加g729编码及pcap音频提取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FreeSWITCH添加自定义endpoint之媒体交互

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9   之前写过FreeSWITCH添加自定义endpoint的文章: https://www.cnblogs.com/MikeZhang/p/fsAddEndpoint20230528.html 今天记录下endpoint媒体交互的过程并提供示例代码及相关资源下载,本文涉及示例代码和资源可从如下渠道获取: 关注微信公众号(聊聊

    2024年02月14日
    浏览(24)
  • FreeSWITCH添加自定义endpoint之api及app开发

    操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 之前写过FreeSWITCH添加自定义endpoint的文章,今天整理下api及app开发的笔记。历史文章可参考如下链接: FreeSWITCH添加自定义endpoint FreeSWITCH添加自定义endpoint之媒体交互 这里列举下开发过程中常用的函数。 1、根据uuid查询session 使用

    2024年02月08日
    浏览(70)
  • 如何提取视频的音频到手机?这个音频提取方法很简单

    提取视频中的音频可以帮助您获得视频的声音部分,而无需观看整个视频。这对于那些只想听视频的声音或想将视频的声音与其他音频内容混合使用的人来说非常方便。此外,提取音频也可以为需要创建音频剪辑或混音的音频制作者提供帮助。那么怎么提取呢?教大家几种简

    2024年02月10日
    浏览(30)
  • 怎么提取视频中的音频?这些提取音频方法很简单

    将视频中的音频提取出来,可以单独对音频进行处理,如剪辑、增强声音等,而不影响视频本身的内容。在后期制作中,音频需要经过一系列的处理,如去噪、降噪、混响等,提取出音频可以更方便地进行这些处理,确保音频效果更好。教大家几种好用的提取音频方法,一起

    2024年02月16日
    浏览(30)
  • 提取音频怎么弄?这三个方法让你一键提取音频文件

    大家平时在看视频的时候会听到很多好听的背景音乐,如果我们想将其中的音乐单独提取出来,要怎么操作呢?有哪些简单快捷的方法可以帮我们提取到自己想要的音频呢? 接下来就来教大家音频提取器怎么用,保证大家一看就会,让你轻松保存下你喜欢的音频内容。 方法

    2024年02月02日
    浏览(36)
  • 视频的音频提取怎么做?这样提取很简单

    提取视频中的音频通常在需要从视频中独立使用音频或需要对音频进行编辑时使用。例如,当我们需要将音频上传到音乐流媒体平台或将其用于播客或其他音频项目时,就可能需要从视频中提取音频。问题是该怎么提取呢?教给大家几种简单的提取方法,一起来学习下吧。

    2024年02月16日
    浏览(38)
  • 【FFmpeg】ffmpeg 命令行参数 ⑦ ( 使用 FFmpeg 提取 PCM 音频数据 | PCM 音频格式 | 提取 PCM 音频格式常用参数 | 查询文档方法 )

    PCM 全称 \\\" Pulse Code Modulation \\\" , 脉冲编码调制 , 该 音频数据 是未经压缩的 采样裸数据 , 只有 知道该数据的 采样率 / 采样位数 / 通道数 才能将该音频数据播放出来 ; PCM 数据是 最原始的音频数据 , 音频内容完全无损 , 但是 PCM 数据体积庞大 , 对 PCM 音频数据压缩 分为 无损压缩

    2024年04月11日
    浏览(41)
  • 通过python如何实现视频提取音频,并将音频转文本

    大致思路: (1)使用moviepy库中的VideoFileClip类读取视频文件,并将其转换为音频文件; (2)使用pydub库中的splitonsilence函数将音频文件分割成多个音频片段,以便进行语音识别; (3)使用SpeechRecognition库中的Recognizer类进行语音识别,并将识别结果写入文本文件中 注意: 将

    2024年02月05日
    浏览(51)
  • 音视频开发:音频编码原理+采集+编码实战

    消除冗余信息,压缩量最大,也叫有损压缩 剔除人耳听觉范围外的音频信号20Hz以下和20000Hz以上; 去除被掩蔽的音频信号,信号的遮蔽可以分为频域遮蔽和时域遮蔽; 频域遮蔽效应 屏蔽70分贝以下,20HZ以下,20000HZ以上 屏蔽分贝小,频率小的声音 两个频率相近发出的声音,

    2024年02月05日
    浏览(45)
  • 使用FFMPEG提取音频数据

      我的上一篇博文中已经介绍了FFmpeg,讲解了下载与安装的方式,并在命令行下将视频数据提取为图片数据,如有需要请查看:使用FFMPEG提取图片数据   提取的音频格式有很多种,在这里只讲解两种格式的提取:mp3、wav。mp3格式和wav格式都是数字音频格式,wav格式是最接

    2024年02月06日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包