VoIP常见编码的带宽计算
voip带宽计算VOIP计算方法与所选用的编码方法有关,而与哪个厂家的没有什么关系,公式如下:
带宽=包长度×每秒包数
=包长度×(1/打包周期)
=(Ethernet头+IP头+UDP头+RTP头+有效载荷)×(1/打包周期)
=(208bit +160bit+64bit+96bit +有效载荷)×(1/打包周期)
=(528bit+(打包周期(秒)×每秒的比特数))×(1/打包周期)
=( 528 / 打包周期 ) + 每秒比特数
根据各种编码方式,得出:
G711:20ms打包,带宽为 ( 528/20 + 64) Kbit/s=90.4 Kbit/s
G729:20ms打包,带宽为 ( 528/20 + 8 ) Kbit/s= 34.4 Kbit/s
G723:5.3k,30ms打包,带宽为 ( 528/30 + 5.3 ) Kbit/s=22.9 Kbit/s
业界一般按照下表提供的IP网带宽系数和以太网带宽系数来设计网络带宽:
编解码技术 压缩速率(Kbps) 打包周期(ms) IP网带宽系数 以太网带宽系数
G.711 a/u 64 20 1.25 1.41
G.729 a/b 8 20 0.38 0.54
G.723.1(5.3kbit/s) 5.3 30 0.27 0.37
G.723.1(6.3Kbit/s) 6.3 30 0.25 0.36
H.263(384Kbit/s) ≈384 10 6 6.2
备注:采用某种编码方式时,用64K乘以相应的带宽系数就可以得出其实际占用的带宽。当然如果是中继接口,还需要考虑信令占据一定的带宽,一般按照2.5%来计算。
举例:
PBX--E1--Router---IP----Router---E1---PBX
这里的带宽占用分为2个部分,1是与PBX连接的POTS部分,1是路由器之间的VOIP部分。一般来说,每路模拟线路的带宽占用是64Kbps,而IP语音的占用会因不同的编码标准有所不同,从8K到80K可供选择。QoS的保证有个要求,就是延迟<=150ms,抖动<=30ms,丢包率<=1%
SPEEX 带宽
We have finally almost finished Speex coding on AR1688 DSP. This open source voice codec turned out to be much more complicated than we expected. There are 8 different bitrate with 8k sampling from 2.15kpbs to 24.6kpbs. I am writing this article to answer a question of how much bandwidth this codec actually use during a call.
Let us calculate based on 802.3 ethernet using SIP protocol:
Ethernet CRC: 4 bytes
MAC header: 14 bytes
IP header: 20 bytes
UDP header: 8 bytes
RTP header: 12 bytes
Speex data: x bytes x depends on bitrate used and number of frames packed in an ethernet packet ("Voice frames per TX" option in AR1688)
Total: (58 + x) bytes
Speex uses 20ms as a frame the size of compressed data in a frame with different bitrate are:
2.15kbps: 6 bytes
3.95kbps: 10 bytes
5.95kbps: 15 bytes
8kbps: 20 bytes
11kbps: 28 bytes
15kbps: 38 bytes
18.2kbps: 46 bytes
24.6kbps: 62 bytes
When only 1 frame is included in an ethernet frame the actually used bandwidth are:
2.15k: 25.6k
3.95k: 27.2k
5.95k: 29.2k
8k: 31.2k
11k: 34.4k
15k: 38.4k
18.2k: 41.6k
24.6k: 48k
When 2 frames are included in an ethernet frame the actually used bandwidth are:
2.15k: 14k
3.95k: 15.6k
5.95k: 17.6k
8k: 19.6k
11k: 22.8k
15k: 26.8k
18.2k: 30k
24.6k: 36.4k
When 3 frames are included in an ethernet frame the actually used bandwidth are:
2.15k: 10.1k
3.95k: 11.7k
5.95k: 13.7k
8k: 15.7k
11k: 18.9k
15k: 22.9k
18.2k: 26.1k
24.6k: 32.5k
When 4 frames are included in an ethernet frame the actually used bandwidth are:
2.15k: 8.2k
3.95k: 9.8k
5.95k: 11.8k
8k: 13.8k
11k: 17k
15k: 21k
18.2k: 24.2k
24.6k: 30.6k
Speex 带宽计算方法
计算公式:( 网络包数据 + 数据包数据 ) / 采样时间
网络包数据 : 58 bytes
由以下五个部分组成
网络 CRC: 4 bytes
(2)mac 地址: 14 bytes
(3)IP 头: 20 bytes
(4)UDP 头: 8 bytes
(5)RTP 头: 12 bytes
数据包数据: 20bytes
采样时间:20ms
如果每个rtp包只传输1个数据包:
(58 +20)*8 /20*1000 = 31.2kb/s
如果每个rtp包只传输2个数据包:
(58 +40)*8 /40*1000 = 19.6 kb/s
如果每个rtp包只传输3个数据包:
(58 +60)*8 /60*1000 = 15.7 kb/s
如果每个rtp包只传输4个数据包:
(58 +80)*8 /80*1000 = 13.8 kb/s
VoIP常见编码的带宽计算的更多相关文章
- VOIP语音编码带宽计算
VOIP Bandwidth consumption naturally depends on the codec used. VOIP消耗的带宽一般取决于所使用的语音编码. When calcul ...
- FMS 客户端带宽计算、带宽限制
FMS 客户端带宽计算.带宽限制 1. 带宽计算 FMS内置了带宽检测的特性(被称作"native bandwidth detection"),要进行带宽检测,客户端只要在成功连接 ...
- Java web中常见编码乱码问题(一)
最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
- Python 'xxx' codec can't decode byte xxx常见编码错
'xxx' codec can't decode byte xxx常见编码错误处理 by:授客 QQ:1033553122 测试环境 python 3.3.2 win7 问题描述 利用python文件 ...
- PCM、G.729等常用VoIP编码的理论带宽计算
可能通信背景的同学,一提到PCM编码,脑海里都能跳出来一个数值64K. 一.64KB还是64Kb? 64Kb! 二.哪里来的64Kb? CCITT规定抽样率为每秒8000KHz,每抽样值编8位码,所以 ...
- java常见编码
摘自:http://www.cnblogs.com/yaya-yaya/p/5768616.html 红色 主要点 灰色 内容 绿色 知识点 橘色 补充内容 几种常见的编码格式 ...
- 带宽计算-大B与小b的区别
原文来自:http://blog.sina.com.cn/s/blog_4b9c0e3601008yf9.html 在计算机网络.IDC机房中,其宽带速率的单位用bps(或b/s)表示:换算关系为:1 ...
- 常见编码GBK、GB2312、UTF-8、ISO-8859-1的区别
https://blog.csdn.net/shijing_0214/article/details/50908144 在项目开发中,会经常遇到不同的编码方式.不管什么编码,都是信息在计算机中的一种表 ...
随机推荐
- Java进阶1. Synchronized 关键字
Java进阶1. Synchronized 关键字 20131025 1.关于synchronized的简介: Synchronized 关键字代表对这个方法加锁,相当于不管那一个线程,运行到这个方法 ...
- 【zznu-2174】
题目链接 题目描述 给出一个圆C1的圆心和半径x1,y1,r1和另外一个圆C2的圆心为x2,y2(x,y均为整数 r为正整数 且绝对值不超1e8).已知两圆圆心距不超1e8,给出两者相交面积S(大于 ...
- 普通用户开通sudo权限:xxx is not in the sudoers file.This incident will be reported.的解决方法
1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去. 2.添加sudo文件的写权限,命令是: chmod u+w /etc/sudoers 3.编辑sudoers文件 vi /etc/s ...
- 决定整理一下canvas的基础学习
好久没有用过canvas,都要忘完了.还是决定复习一下以前的笔记,以及整理一下笔记,以后好查阅
- vue.js 源代码学习笔记 ----- instance proxy
/* not type checking this file because flow doesn't play well with Proxy */ import config from 'core ...
- 现代前端技术解析:Web前端技术基础
最近几年,越来越多的人投入到前端大军中:时至至今,前端工程师的数量仍然不能满足企业的发展需求:与此同时,互联网应用场景的复杂化提高了对前端工程师能力的要求,一部分初期前端工程师并不能胜任企业的工作 ...
- java List 学习
要学习List<E>接口,首先,我知道它还有一个父接口Collection<E>.而Collection<E>又有一个超级接口Iterable<T>. ...
- Java基础部分全套教程.
这是我自己早前听课时整理的java基础全套知识,使用于初学者,也可以适用于中级的程序员,我做成了chm文档的类型,你们可以下载 笔记是比较系统全面,可以抵得上市场上90%的学习资料.讨厌那些随便乱写的 ...
- (效果四)jst如何判断对象是否为空?
前言:在实现业务逻辑的过程中,很多工程师都会遇到需要判断一个对象,数组是否为空的情景,很多时候我们在请求数据的时候都需要判断请求的对象数据是否为空,如果直接使用,在数据请求为空时,控制台就会报错.因此 ...
- 对于Dubbo一些面试题自己的答案
Dubbo 头几天瞧到<Java顶尖口试必问-Dubbo口试题汇总>,对于内里得难点本人试着答复少许,有错误得请民众指正. Dubbo固然大概不革新了,可是背靠阿里得措施能力,中文报告得多 ...