一、现状

调查了一下,主要有两种主流方式,WebRTC或者Flash。

1. WebRTC(不支持IE浏览器,已排除):网页实时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla基金会、Opera支持下已经成为ISO通信标准,跨平台(pc,安卓,iso),是未来趋势。

2. Flex+FMS方式实现(采用),优点是:FMS服务器是Adobe公司开发的基于Flash技术的主要支持流媒体的服务器软件,技术优势明显,方便的流媒体应用实现方式,稳定的运行状态。缺点,FMS是付费的,而且价格不菲(中文版价格¥65400)。

二、数据流量分析(FMS)

互联网的音视频传输主要测算方式是根据画面分辨率及其压缩比得出的码流(Data Rate)来计算视频数据量的负载。首先,要明确一下几点问题:

1、 通常一个在线观众要流畅的观看标清视频需要大概30k~40k的带宽流量。

2、 带宽的换算方法是128k的流量需要1M的网络带宽。

3、 服务器所要负载的带宽是按可承载的最高并发流量计算出来的。并发流量是指同时访问资源的流量值,如果是利用FMS技术,要想满足并发流量的需求就需要将流量累加。如100人同时访问视频资源则可计算出:

100人  *   30k     =  3000k

3000k  ÷  128k/M  =  23.4M(约20M带宽)

如果网站的视频观众最高并发量时达到100人,就需要至少20M的带宽;

如果网站的视频观众最高并发量时达到1000人,就需要至少200M的带宽;

如果网站的视频观众最高并发量时达到5000人,就需要至少1000M的带宽;

目前,国内正规服务器提供商常规配置:

30M宽带费用3万元/年(阿里云4核8G内存),

50M宽带费用5万元/年(阿里云4核8G内存),

100M带宽费用10万元/年(阿里云4核8G内存)。

以上测算均为理论值,并且是满负荷计算,在实际运营中服务器不会仅考虑满负荷和理论情况,大都在该基础上采用成倍数量级的服务器带宽资源来保障运行安全。

三、P2P(FMS5.0)

P2P技术可以解决流量过大的问题。FMS5.0以前可以用FMS+stratus(也是adobe的技术)来实现p2p视频,网上说理论上可以节省70%~90%的流量。从现在查到的资料来看FMS5.0以后也可以实现p2p.

所以说,按照上一节的结果,如果100人在线的话,

30M*(10%~30%) ≈ 3M~10M,一年的服务器费用大概在10000元。

四、开发费用:

1. FMS授权:60000元

2. 服务器费用:10000元

合计:70000元

五、开发周期:2~3人月。

1. Demo中实现基本视频功能:5人天(0.25人月)

2. Demo实现p2p功能:10人天(0.5人月)

3. 整理分析网站视频模块需求:2人天(0.1人月)

4. 实现网站视频模块需求:20人天(1人月)

5. 测试,完善5天(0.25人月)。

6. 部署并排查5天(0.25人月)

合计,2.35人月。

2014-02-14

视频FMS服务器带宽成本分析的更多相关文章

  1. [ActionSprit 3.0] FMS服务器带宽检测

    package { import flash.display.Sprite; import flash.net.NetConnection; import flash.events.NetStatus ...

  2. rtmp一些状态信息详解-as连接FMS服务器报错状态汇总~~

    原地址:http://help.adobe.com/zh_CN/AIR/1.5/jslr/flash/events/NetStatusEvent.html 下表说明了 code 和 level 属性可 ...

  3. FMS 客户端带宽计算、带宽限制

    FMS 客户端带宽计算.带宽限制 1. 带宽计算 FMS内置了带宽检测的特性(被称作"native bandwidth detection"),要进行带宽检测,客户端只要在成功连接 ...

  4. 网络服务器带宽Mbps、Mb/s、MB/s有什么区别?10M、100M到底是什么概念?

    网络服务器带宽Mbps.Mb/s.MB/s有什么区别?我们经常听到IDC提供的服务器接入带宽是10M独享,或者100M独享,100M共享之类的数据.这的10M.100M到底是什么概念呢? 工具/原料 ...

  5. linux减少服务器带宽的方法

    linux减少服务器带宽的方法用百度静态资源公共库http://cdn.code.baidu.com/ 不仅可以不使用服务器流量 而且还有cdn加速比方说http://apps.bdimg.com/l ...

  6. 使用speedtest-cli测量服务器带宽

    使用speedtest-cli测量服务器带宽,这个是python写的工具,很方便,只需要在服务器端安装即可. 1.安装python-pip # yum install python-pip –y 2. ...

  7. LINUX服务器带宽跑满、负载过高问题排查

    1.centos 安装流量监控iftop apt-get  install iftop -y 2.查看网卡名称 ifconfig 3.查看端口占用情况 iftop -i 网卡名称 -P 执行 nets ...

  8. 测试linux服务器带宽

    测试准备 1. 计划考量参数 TCP上传数据带宽 TCP下载数据带宽 UDP上传带宽 UDP下载带宽 多并发支持 稳定性 Tcp通讯网络延迟(小包:32.中包1k.大包1M) UDP通讯网络延迟(小包 ...

  9. 真实记录疑似Linux病毒导致服务器 带宽跑满的解决过程

    案例描述 由于最近我在重构之前的APP,需要和server端进行数据交互,发现有一个现象,那么就是隔1~2天总会发生获取数据超时的问题,而且必须要重启服务器才能解决.早在之前,我有留意到这个问题,但是 ...

随机推荐

  1. Android处理Bitmap使其能够不失真等比缩放裁剪后显示在ImageView上

    Android开发过程中,我们有时需要动态得显示一些图片,并且这些图片的大小差距会十分大,如果需求并不是需要图片完整显示,但是需要不失真,并且要图片中间部分的情况下,我们需要做一系列处理,因为这个时候 ...

  2. RC4 加密算法asp版

    Function RC4(data, Key) ), k(), outstr, Acii, j, tst, xre1, xre2, temp, x, t, y, qwe, zxc s(i) = i - ...

  3. Part 13 Create a custom filter in AngularJS

    Custom filter in AngularJS 1. Is a function that returns a function 2. Use the filter function to cr ...

  4. WPF button 如何区分click和doubleclick

    WPF button 同时处理两个事件时候会先触发click事件,触发doubleclick事件  ,那如何区分呢,可以这样设置: private static DispatcherTimer myC ...

  5. throws与throw的对比

    1.throws关键字通常被应用在声明方法时,用来指定可能抛出的异常.多个异常可以使用逗号隔开.当在主函数中调用该方法时,如果发生异常,就会将异常抛给指定异常对象.如下面例子所示:public cla ...

  6. JavaScript语言常量和变量

    我们在以往介绍使用JavaScript编写一个HelloJS的小程序,其中我们就用到变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字const,就可以把该 ...

  7. 3DES 加解密,对长度不限制

    #region 3DES /// <summary> /// 3DES加密 /// </summary> /// <param name="strString& ...

  8. 转: Python集合(set)类型的操作

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  9. jQuery 表单验证 jquery.validator.js

    前端开发中经常会碰到表单的制作,其中必备的功能就是提交前的一些简单的验证,非空啊.手机号码啊.E-mail等等等等,这里是一个 jQuery 的表单验证插件,蛮好用的,收录一下. 下面是验证的效果图: ...

  10. 【风马一族_Python】 决策树

    <机器学习实战>第三章 决策树 ------------------------------------- #1 trees.py 计算给定数据集的香农熵 ---------------- ...