首页 > 代码库 > 对语音通话占用带宽的理解

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

有时候客户比较关心要申请多少M的带宽来保证服务器可以达到多少路的语音通话,这里仅描述一下我个人的理解。


这里以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


备注:

上面计算一路通话的带宽值是针对一个终端设备的一路通话,如果服务器支持媒体转发代理功能,计算服务器上一路通话带宽值的话需要乘以2,因为服务器一路通话对应着两个终端设备。