对语音通话占用带宽的理解

Posted yxysuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对语音通话占用带宽的理解相关的知识,希望对你有一定的参考价值。

有时候客户比較关心要申请多少M的带宽来保证server能够达到多少路的语音通话,这里仅描写叙述一下我个人的理解。


这里以G711编码为例进行说明,同一时候大家应该清楚G711编码的标准编码速率为64Kbps。而且如果使用的是不含有VLAN的静态IP上网方式的LAN上行设备(主要在以下计算“整个报文的大小”时须要考虑这些因素)。


1、先给出换算一路语音通话的带宽公式:

   一路通话带宽X             整个报文的大小(假设进行媒体加密这里须要增加加密的填充字节)
------------------------   =     -----------------------------------------------------------------------------
   G711编码速率              指定打包时长的G711编码负载大小(假设进行媒体加密这里须要增加加密的填充字节)

一路通话带宽X        =  整个报文的大小 *  G711编码速率  /  指定打包时长的G711编码负载大小


这里分别算出“整个报文的大小”、“指定打包时长的G711编码负载大小”就可以求出“一路通话带宽X”。

(备注:G711编码速率为标准的64Kbps,为已知项)


2、整个报文的大小 = 以太网报头大小 + IP报头大小 + UDP报头大小 + RTP报头大小 + 指定打包时长的G711编码负载大小

“以太网报头大小”、“IP报头大小”、“UDP报头大小”、“RTP报头大小”这些都有标准定义,详细能够了解相关标准,这里觉得都是已知项。就不再进行描写叙述。


3、指定打包时长的G711编码负载大小

比方使用G711编码,20ms的打包时长得到的编码负载为80byte,计算方法例如以下:

G711编码的标准编码速率为64Kbps。

64Kbps = (64K)bit/秒 = (64K/8)byte/秒 = (8K)byte/秒 = (8K/1000)byte/毫秒 = (8byte)/毫秒

所以20ms的G711编码负载也就是 20 * 8byte = 160 byte


备注:

上面计算一路通话的带宽值是针对一个终端设备的一路通话。假设server支持媒体转发代理功能,计算server上一路通话带宽值的话须要乘以2。由于server一路通话相应着两个终端设备。


以上是关于对语音通话占用带宽的理解的主要内容,如果未能解决你的问题,请参考以下文章

4G LTE 网只能提供数据服务,不能承载语音通话,该怎么理解?

如何在同一个 App 中同时集成语音通话和视频通话 Agora SDK

Quickblox 语音通话/视频通话

Android 语音通话录音无法在系统上播放

在android上的语音通话数据通道上传输数据

点对点语音呼叫 Twilio