流媒体并发量与宽带、码率计算详解

码率计算公式
    基本的算法是:【码率】(kbps)=【文件大小】(字节)X8/【时间】(秒)*1000
    音频文件专用算法:【比特率】(kbps)=【量化采样点】(kHz)×【位深】(bit/采样点)×【声道数量】(一般为2)
    举例,D5的碟,容量4.3G,其中考虑到音频的不同格式,所以算为600M,(故剩余容量为4.3*1000-600=3700M),所以视频文件应不大于3.7G,本例中取视频文件的容量为3.446G,视频长度100分钟(6000秒),计算结果:码率约等于 4933kbps。

并发量计算公式
    并发量 = 宽带(m)*8/【码率】(mbps)
    举例:视频文件1.1G ,时长1:46:11 ,宽带100(M)=100/8=12.8M/s
             码率=1100(M)*8 / 6371(s)=1.3(mbps)
             并发=12.8(M/s)*8/1.3(mbps)=78.7
参考资料:
1、基本参数
    STAT硬盘的实际读写速度约是50MB/S,单位为兆字节每秒(MB/s)。
    单路视频流的码率约是384Kbps,单位为千比特每秒(Kbits/s),换算为字节计算法是48KB/S,单位为千字节每秒(KB/s)。
    每个视频房间支持2路视频的录制,则每个房间的码流是768Kbps,换算为字节计算法是96KB/S。
    单台服务器的接入带宽是1Gbps,换算为字节计算法是128MB/S。
    本计算法只考虑服务器硬盘读写速度和网络带宽的限制,忽略服务器的CPU、内存等因素。
    2、根据硬盘的瓶颈计算
    计算公式:
    硬盘读写速度/每个房间的码流 = 实际支持的录像并发数(或回放的并发数)。
    实际计算数值:
    (50*1024)/96 = 533
    结论:
    单台服务器同时支持500个房间(1000人)同时录像(或1000路并发回放)。
    回放指的是实时的播放流,并不包括采用本地缓存和缓冲机制的点播流。
    如果每个房间只有1路录制流,则录像并发数是1000个房间。
    这是硬盘的瓶颈。
    3、计算所需要的网络带宽
    计算公式:
    (每个房间的码流*500个房间) = 500个房间所需要的带宽。
    实际计算数值(使用Kbits/s作为计量单位):
    (768*500)/1024 = 375Mbits/s
    结论:
    500个房间同时录像所需375Mbits/s上下行对等带宽。
    这是带宽的需求。
    4、更多计算
    (1)按照每个房间增加1路观看者,计算一下需要多少带宽?
    观看者同时观看房间里的2路视频,每个房间所需码流是768Kbps,单位为千比特每秒(Kbits/s)。
    计算公式:
    观看者实时码流*500个房间 = 观看者所需占用带宽
    实际计算数值(使用Kbits/s作为计量单位):
    (768*500)/1024 = 375Mbits/s
    结论:
    如需为每个房间增加1路观看者,同时接收2路录像者视频,则需要增加375Mbits/s上行带宽。
   (2)对录像者的终端带宽要求
    上行带宽:至少384Kbps,单位为千比特每秒(Kbits/s)。
    下行带宽:至少384Kbps。
    (3)对观看者的终端带宽要求
    上行带宽:不需要。
    下行带宽:至少768Kbps。
    (4)单台服务器的运行费用估算
    购置机器:1万元。
    托管费用:5000元/年。
    带宽费用:18万/年(按照IDC报价,1Gbits的带宽月租是1.5万元)。
    软件服务:24万/年(按照厂家报价,视频软件的月服务费是2万元)。
    5、相关数据
    (1)普通宽带的带宽计算法
    普通家庭宽带和办公室宽带,仍以ADSL居多(小区光纤优于普通电话线ADSL),因此我们将以电话线ADSL为例来说明。
    电信运营商给出的带宽是2M、4M、10M等等,这个速率值是指为用户提供的带宽数值,单位是bps(比特位),而且这个带宽仅是用户端到当地电信的速率,并非指用户到达目标服务器的有效使用带宽。而且,ADSL是非对等网络,刚才说的数字只是ADSL的下行带宽,也就是下载速度,ADSL的上行带宽只有384Kbps,有些地区的ADSL上行只有256Kbps。

当用户需要进行视频录制时,所需要的带宽是384Kbps(单位比特位),这个速度正好是ADSL的上行速度。因此,用户在录制的时候,并不能让其他程序占用带宽,例如迅雷、电驴等软件。

计算ADSL下行带宽有很直观的方法,就是观察下载速度,一般来说下载速度是按照Byte/s(字节/秒)来显示的,需要转换为bits/s(比特/秒)才行,换算关系是1Byte/s = 8bits/s(即8bps),例如:

2M的ADSL用户在下载时可以达到135KB/s-220KB/s,即1280Kbps(即1280Kbits/s)。

(2)用户端所需要的带宽
    实时的视频流需要稳定的带宽,当带宽不稳定时,会出现较大的延时和丢包现象,造成视频的停顿(俗称卡),当网络恢复时,也会出现视频快速播放的情况(这是刚才因网速较差造成的堵塞数据)。
    计算实时视频所需要的带宽方法很简单。
    发送者:
    上行带宽:单路视频的码流就是所需的上行带宽,一般ADSL是可以支撑的,除非视频质量参数设置的很高。
    下行带宽:接收到的视频数量*每路视频的码流,就是所需的总带宽(要除去自己的那路视频流),例如4路视频时,减去自己的1路,计算3*384=1.2Mbps,因此需要1.2M的下行带宽(至少2M的ADSL才行)。
    观看者:
    上行带宽:观看者的上行带宽要求很低,只需要可以传送控制指令和聊天信息等消息流即可,但网络的稳定性要求依然很高。
    下行带宽:接收到的视频数量*每路视频的码流,例如4路视频,计算4*384=1.5Mbps,因此需要1.5M的下行带宽(至少2M的ADSL才行)。

音视频开发(28)---流媒体并发量与宽带、码率计算详解相关推荐

  1. 音视频开发系列(65)-FFMPEG进阶系列01-ffplay命令详解

    概述 ffplay是一个基于FFMPEG库和SDL库开发的多媒体播放器.它的主要目的是是用来测试FFMPEG的各种API,比如codec/format/filter等等库. 掌握ffplay的设计逻辑 ...

  2. 流媒体并发量与宽带、码率计算详解

    码率计算公式 基本的算法是:[码率](kbps)=[文件大小](字节)X8/[时间](秒)* 1000 音频文件专用算法:[比特率](kbps)=[量化采样点](kHz)×[位深](bit/采样点)× ...

  3. moviepy音视频开发专栏文章目录

    ☞ ░ 前往老猿Python博文目录 ░ <moviepy音视频开发专栏>为收费专栏,对应免费专栏为<PyQt+moviepy音视频剪辑实战>,这2个专栏基于老猿阅读movie ...

  4. 音视频开发为什么要学SRS流媒体服务器

    1 SRS是什么 官方定义:SRS是一个流媒体集群,支持RTMP/HLS/HTTP-FLV/RTSP/DASH/WebRTC/SRT/GB28181,高效.稳定.易用,简单而快乐.有将近10k sta ...

  5. 音视频开发成长之路—进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频

    音视频开发成长之路-进阶之路3个重要知识点 视频讲解如下,点击观看: 音视频开发成长之路-进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频 音视频高级 ...

  6. 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发

    SRS 4.0开发环境搭建 视频讲解如下,点击观看: 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发 音视频高级开发学习学习资料链接:FFmpeg/WebR ...

  7. 音视频开发-音视频面试必问的直播延迟分析丨FFmpeg|SRS流媒体服务器|webrtc|Android NDK开发|HTTP-FLV|RTSP

    音视频面试必问的直播延迟分析 1.直播延迟500ms是极限吗,加上WebRTC能做到多少 2.推流的延迟分析 3.流媒体服务器延迟分析 4.拉流的延迟分析 视频讲解如下,点击观看: 音视频开发-音视频 ...

  8. 流媒体服务器开发——SRS 4.0与WebRTC音视频通话丨音视频开发丨嵌入式开发丨FFmpeg丨iOS音视频开发

    SRS 4.0与WebRTC音视频通话 1. 音视频高薪岗位都需要什么技能点 2. WebRTC的技术点分析 3. SRS 4.0如何使用WebRTC 视频讲解如下,点击观看: 流媒体服务器开发--S ...

  9. SRS流媒体服务器架构设计及源码分析丨音视频开发丨C/C++音视频丨Android开发丨嵌入式开发

    SRS流媒体服务器架构设计及源码分析 1.SRS流媒体服务器架构设计 2.协程-连接之间的关系 3.推流-转发-拉流之间的关系 4.如何手把手调试SRS源码 视频讲解如下,点击观看: SRS流媒体服务 ...

最新文章

  1. 利用数据寿命增加基于闪存的存储类存储器的使用寿命
  2. 【深度学习笔记】ROC曲线 vs Precision-Recall曲线
  3. 参数 中_理解JavaScript中函数的参数
  4. oracle 11g的启动和关闭
  5. 如何解决忙死领导,闲死下属的问题?
  6. 在应用程序中使用Runspace 1
  7. 【开发日常】手动安装fastboot驱动(开发板连不上minitool)
  8. CAD制图初学入门:CAD图案填充之图案加洞
  9. SAP检验批次批量取消程序示例(备份)
  10. 你应该问面试官的10个相关问题
  11. 新宝盘面简述12.24
  12. STM32学习笔记二、DS18B20单总线上挂载多路采集
  13. android Account
  14. 这几款软件的隐藏功能,你们知道多少?
  15. JAVA实现打字小游戏
  16. Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe
  17. micropython是什么意思_MicroPython 是什么?
  18. 2018年,如下几件事或许值得期待
  19. 票务系统的主要售票方式
  20. 机器学习-样本不均衡现象

热门文章

  1. 将GPIO外设挂到Cortex_M3 AHB总线上详细流程扩展外设步骤总结
  2. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之设备树模型
  3. 计算机网络(八)——web的工作原理
  4. OK6410开发板学习之外部中断(按键点亮led和蜂鸣器)
  5. linux多线程学习(五)——信号量线程控制
  6. 高性能HTTP加速器Varnish(概念篇)
  7. mysql space id_MySQL8.0新特性:增加系统文件追踪space ID和物理文件的映射-阿里云开发者社区...
  8. Java数组的转换和拷贝
  9. 力扣892.三维形体的表面积
  10. 【译】成为优秀程序员(和人类)的101个技巧