在开始一个使用 FLASH MEDIA SERVER的项目开始之前,最好能够对你项目使用FLASH MEDIA SERVER 3的带宽需求进行计算.这样对你的项目最终的实现效果,会有一个稳定的结果;去评估您的 Flash Media Server 应用所使用的带宽, 您需要了解如下内容:

  • 您的应用并发用户数量的最大负荷数
  • 数据传输速度,您预计您的用户连接速度( 56 Kbps 拨号上网, cable/DSL, 或者是居域网的使用比例)
  • 您的应用将要支持视频/音频操作的用户比率
  • 服务器硬件的局限性以及互联网状况
  • 您应用中视频和音频格式的频率

首先区分您应用的类型;一种为一对多(例如视频点播),另一种是多对多(例如视频会议),

Figure 1. One-to-many 视频点播系统

带宽计算公式

  • 计算服务器端带宽需求 (BWs):
    BWs = N × S
    N = 并发用户数量 //number of simultaneous users (subscribers)
    S = 视频内容平均编码比特率 //average bitrate of encoded A/V content
  • 计算客户端带宽需求(BWc):
    BWc = S
    S = 视频内容平均编码比特率 //average bitrate of encoded A/V content

举例:

视频编码是500 Kbps,有1000人进行观看那么服务总体带宽需求是

500 Mbps = 1000 × 500 Kbps

如果您的服务器支持600 Mbps吞吐量的硬件配置能力,您只需要一台服务和许可就可以.

当然如果您需要更多的用户访问量,比如10,000人并发需求,那么下面的计算式:

5000 Mbps = 10,000 × 500 Kbps

并发服务器硬件配置能力是600 Mbps,您需要:

8.3 = 5000 Mbps ÷ 600 Mbps

调整多比率计算方程式

例如,前面的例子有一半人使用350 Kbps DSL modem,另一半人使用的是3 Mbps cable modem.当观众收看视频编码为500 Kbps的时候,你想要分割视频为150KBPS给DSL modem用户.

325 Mbps = (500 Kbps × 500) + (150 Kbps × 500)

这样带宽被降到了325MBPS.

实例2:多对多

例如视频会议,需要多个人同时看到对方.

Figure 2. 多对多视频会议

例如,如果有四个人在一个房间中,第一个人可以发送一个视频和接受三个其他的视频流,总共四个视频流.同样的第二,三,四个人也会消耗四个视频流.因此Flash Media Server视频流的总共数量是16每四个人.

带宽计算

  • 计算服务端带宽 (BWs):
    BWs = (P × N) × S
    P = 发布者的数量
    N = 订阅者的数量
    S = 视频编码的平均比特率
  • 计算客户端带宽 (BWc):
    BWc = P × S
    P = 发布者的数量
    S = 视频编码的平均比特率

实例计算

为四个人使用100 Kbps的视频流为一个会议室服务端带宽需要:

4.8 Mbps = (4 × 4) × 300 Kbps

为四个人使用100 Kbps的视频流为一个会议室客户端带宽需要:

900 Kbps = 3 × 300 Kbps 下载流

300 Kbps = 1 × 300 Kbps 上传流

因此每个视频会议房间将会需要一个4.8 Mbps的带宽.一台吞吐量为600 Mbps的服务器,你可以支持600 Mbps ÷ 4.8 Mbps = 125 房间.

FMS带宽的需求计算法的更多相关文章

  1. 大型网站的灵魂——性能

    前言     在前一篇随笔<大型网站系统架构的演化>中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我 ...

  2. 深入浅出HTTP协议(WEB开发和面试必备)

    1. 基础概念篇   a.简介 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和 ...

  3. 深入理解http/https协议

    深入理解HTTP协议(转) http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(Wo ...

  4. SDN与NFV技术在云数据中心的规模应用探讨

    Neo 2016-1-29 | 发表评论 编者按:以云数据中心为切入点,首先对SDN领域中的叠加网络.SDN控制器.VxLAN 3种重要技术特点进行了研究,接下来对NFV领域中的通用服务器性能.服务链 ...

  5. HTML5离线缓存问题

    HTML5离线缓存问题 1.应用程序缓存 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. ...

  6. 转载和积累系列 - 深入理解HTTP协议

    深入理解HTTP协议 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web C ...

  7. 【转】HTTP协议详解

    原文地址:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436.html 一.概念 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则 ...

  8. CDN技术

    CDN 是构建在数据网络上的一种分布式的内容分发网. CDN 的作用是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避免单点失效带来的不良影 ...

  9. CDN(内容分发网络)技术原理

    1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加, 用户数量也在不断增加,受Web服务器的负荷和传输距离 ...

随机推荐

  1. 三列布局,读《css那些事儿》

    1.两列定宽,中间自适应 要点:浮动.负边距效果.mainbox增加内容div并设置margin.:after清除浮动 原理:mainbox的浮动并将其宽度设置为100%,次要内容及侧边栏设置固定宽度 ...

  2. GetEnvironmentVariable 获取常用系统变量(转)

    源:GetEnvironmentVariable 获取常用系统变量 //譬如 WINDIR 表示系统目录系统变量, 以这样获: var s:string; begin s:=GetEnvironmen ...

  3. PAT (Advanced Level) 1028. List Sorting (25)

    时间卡的比较死,用string会超时. #include<cstdio> #include<cstring> #include<cmath> #include< ...

  4. JS监听input框的回车事件、属性值改变事件

    一.介绍 在程序猿门的工作中,经常会遇见一些表单数据的提交,对于有表单的东西而言,input输入框是非常常见的,所以对于一些input的基本事件,我们需要去掌握 二.input的监听enter事件 比 ...

  5. mac 剪切文件

    首先选中文件,按Command+C复制文件:然后按Command+Option+V:就可以把你的文件剪走了!在这里补充一下,我这里讲的是剪切文件夹,不是剪切文本和文字!Command+X只能剪切文字文 ...

  6. HDU 4408 Minimum Spanning Tree 最小生成树计数

    Minimum Spanning Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  7. Laravel Cache 使用

    在项目中使用 laravel 的 cache 时,使用下面形式方法: $value = Cache::remember('users', $minutes, function() { return D ...

  8. [iOS Animation]-CALayer 性能优化

    性能优化 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...

  9. arm-linux学习笔记3-linux内存管理与文件操作

    配置好linux系统之后需要vim配置一下,有助于我们的编程,主要的配置如下 在/etc/vim/vimrc文件中 "显示行号 set number "自动缩进 set autoi ...

  10. JNI中的内存管理(转)

    源:JNI中的内存管理 JNI 编程简介 JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互 ...