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 在项目开发中,会经常遇到不同的编码方式.不管什么编码,都是信息在计算机中的一种表 ...
随机推荐
- 【小米oj】找出单独的数字
题目链接:https://code.mi.com/problem/list/view?id=2&cid=0&sid=26251#codearea 描述 给出N个数字.其中仅有一个数字出 ...
- 九、dbms_ddl(提供了在PL/SQL块中执行DDL语句的方法)
1.概述 作用:提供了在PL/SQL块中执行DDL语句的方法,并且也提供了一些DDL的特殊管理方法. 2.包的组成 1).alter_compile说明:用于重新编译过程.函数和包语法:dbms_dd ...
- CocoaPods Mac App的安装和使用
CocoaPods桌面应用版下载地址:https://cocoapods.org/app打开应用会提示你是否安装命令行工具,选择install就也可以在命令行使用Pod了.省去了上面的步骤们,方便快捷 ...
- LeetCode之Longest Substring Without Repeating Characters
[题目描述] Given a string, find the length of the longest substring without repeating characters. Exampl ...
- Ubuntu12.04 中文输入法设置
1.ibus输入法 Ubuntu系统安装后已经自带了ibus输入法,在英语环境下默认不启动. 配置ibus自动启动可 以在ubuntu系统菜单上选择System(系统)--- Preferences( ...
- resultMap的使用
1)属性 id:resultMap的唯一标识 type:Java实体类 2)子元素 id 一般对应数据库中该行的主键id,设置此项可提高MyBatis性能 result 映射到JavaBean的某个“ ...
- CuratorFramework入门指南
CuratorFramework入门指南 原文地址:https://github.com/Netflix/curator/wiki/Getting-Started CuratorFramework作为 ...
- matlab save 命令
有时候要运行很长才得到结果,而这部分结果在后面修改代码之后不需要改变.可以多次利用这些结果or参数,有必要将结果保存下来. 1 save example1 A ;%A为当前环境下的变量,example ...
- vue-cli搭建及项目目录结构
今天总结一下vue的脚手架的搭建.很简单,今天我们就来说一下 一.vue 脚手架的搭建. 对于脚手架的具体搭建方法,我这里不在很详细的书写,具体方法我推荐菜鸟教程的方法,和具体,你一步一步的来就可以实 ...
- 【排序】归并排序,C++实现
原创文章,转载请注明出处! 博客文章索引地址 博客文章中代码的github地址 # 基本思想(分治法) 归并排序中, “归”代表递归的意思,即递归的将数组通过折半的方式分离为单个数组. “ ...