音频带宽计算

接触音视频,有时候会需要对带宽进行评估,而固定码率的音频带宽是相对比较好计算的。虽然好计算,但是以前老师经常说:“好记性不如烂笔头!”。因为我也是经常忘记这么去计算,所以,我还是在博客里面简单记录下吧。

音频的带宽,可能我们一般说的都是仅计入音频的,比如VOIP中常用的G711,其音频带宽是64kbps。而现在大部分走的都是以太网的IP数据,因此其实还有以太网自己的报文头以及校验内容。所以实际所用的带宽,肯定是大于64kbps的。为了计算以太网的带宽。需要先对以太网的报文格式做一个简单的了解。

网络分层

网络分层使用的是OSI模型,而TCP/IP协议族中,通常会把应用层、表示层和会话层归到应用层中去,也就是上图的层次分布了。

以太网报文格式

参考维基百科给出的资料:

除去负载,并且我们不打tag,那么一个以太网的基础头以及校验,所需要的字节数是:7+1+6+6+2+4+12=38,也就是以太网这些头及校验就需要38字节。

IP报文

这张图,我可以很清楚的看出,IP头,需要20个字节。

RTP报文格式

而我们在VOIP中,一般音频负载在RTP上。而一个RTP的报文格式如下:

RTP负载在UDP上,UDP头是8字节,RTP头是12字节,总的是20字节。

因此一个音频报文,在VOIP中,除去负载,其需要的字节,总共是:38+20+20=78字节。接下来,我们以G711做一个计算。

G711音频负载计算

G711使用的是64kbps(8k的采样率,由于一次才有最低是1字节,所以8k的采样率的带宽就是8k*8=64k了),打包时间是20ms,也就是1s需要打包的次数是1000/20=50次。那么64kbps被分配到50次的打包,每次需要的字节数是64000/50=1280bits也就是,1280/8=160字节。所以我们如果有通过wireshark抓包,可以看到G711的每一帧的报文是160字节。

那么一次打包,就需要160+78=238字节。而由于1s是打包50次,所以1s的带宽就是238*50=11900字节/s,也就是11900*8=95.2kbps。所以G711的网络带宽需要95.2kbps才能够保证音质。

以下是一些常用的音频带宽计算结果:

参考资料:

Internet protocol suite

Ethernet frame

IPv4 Packet Header

VoIP Bandwidth Calculation

 

转载请注明: 转载自elkPi.com

本文链接地址: 音频带宽计算

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top