音视频开发(28)---流媒体并发量与宽带、码率计算详解
流媒体并发量与宽带、码率计算详解
码率计算公式
基本的算法是:【码率】(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)---流媒体并发量与宽带、码率计算详解相关推荐
- 音视频开发系列(65)-FFMPEG进阶系列01-ffplay命令详解
概述 ffplay是一个基于FFMPEG库和SDL库开发的多媒体播放器.它的主要目的是是用来测试FFMPEG的各种API,比如codec/format/filter等等库. 掌握ffplay的设计逻辑 ...
- 流媒体并发量与宽带、码率计算详解
码率计算公式 基本的算法是:[码率](kbps)=[文件大小](字节)X8/[时间](秒)* 1000 音频文件专用算法:[比特率](kbps)=[量化采样点](kHz)×[位深](bit/采样点)× ...
- moviepy音视频开发专栏文章目录
☞ ░ 前往老猿Python博文目录 ░ <moviepy音视频开发专栏>为收费专栏,对应免费专栏为<PyQt+moviepy音视频剪辑实战>,这2个专栏基于老猿阅读movie ...
- 音视频开发为什么要学SRS流媒体服务器
1 SRS是什么 官方定义:SRS是一个流媒体集群,支持RTMP/HLS/HTTP-FLV/RTSP/DASH/WebRTC/SRT/GB28181,高效.稳定.易用,简单而快乐.有将近10k sta ...
- 音视频开发成长之路—进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频
音视频开发成长之路-进阶之路3个重要知识点 视频讲解如下,点击观看: 音视频开发成长之路-进阶之路3个重要知识点丨WebRTC丨FFmpeg丨SRS流媒体服务器丨C++音视频丨嵌入式音视频 音视频高级 ...
- 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发
SRS 4.0开发环境搭建 视频讲解如下,点击观看: 音视频开发-SRS 4.0开发环境搭建丨webrtc丨FFmpeg丨SRS流媒体服务器开发 音视频高级开发学习学习资料链接:FFmpeg/WebR ...
- 音视频开发-音视频面试必问的直播延迟分析丨FFmpeg|SRS流媒体服务器|webrtc|Android NDK开发|HTTP-FLV|RTSP
音视频面试必问的直播延迟分析 1.直播延迟500ms是极限吗,加上WebRTC能做到多少 2.推流的延迟分析 3.流媒体服务器延迟分析 4.拉流的延迟分析 视频讲解如下,点击观看: 音视频开发-音视频 ...
- 流媒体服务器开发——SRS 4.0与WebRTC音视频通话丨音视频开发丨嵌入式开发丨FFmpeg丨iOS音视频开发
SRS 4.0与WebRTC音视频通话 1. 音视频高薪岗位都需要什么技能点 2. WebRTC的技术点分析 3. SRS 4.0如何使用WebRTC 视频讲解如下,点击观看: 流媒体服务器开发--S ...
- SRS流媒体服务器架构设计及源码分析丨音视频开发丨C/C++音视频丨Android开发丨嵌入式开发
SRS流媒体服务器架构设计及源码分析 1.SRS流媒体服务器架构设计 2.协程-连接之间的关系 3.推流-转发-拉流之间的关系 4.如何手把手调试SRS源码 视频讲解如下,点击观看: SRS流媒体服务 ...
最新文章
- 利用数据寿命增加基于闪存的存储类存储器的使用寿命
- 【深度学习笔记】ROC曲线 vs Precision-Recall曲线
- 参数 中_理解JavaScript中函数的参数
- oracle 11g的启动和关闭
- 如何解决忙死领导,闲死下属的问题?
- 在应用程序中使用Runspace 1
- 【开发日常】手动安装fastboot驱动(开发板连不上minitool)
- CAD制图初学入门:CAD图案填充之图案加洞
- SAP检验批次批量取消程序示例(备份)
- 你应该问面试官的10个相关问题
- 新宝盘面简述12.24
- STM32学习笔记二、DS18B20单总线上挂载多路采集
- android Account
- 这几款软件的隐藏功能,你们知道多少?
- JAVA实现打字小游戏
- Jenkins系列:5、wsl下的Jenkins编译Windows下的Qt程序并自动打包成exe
- micropython是什么意思_MicroPython 是什么?
- 2018年,如下几件事或许值得期待
- 票务系统的主要售票方式
- 机器学习-样本不均衡现象
热门文章
- 将GPIO外设挂到Cortex_M3 AHB总线上详细流程扩展外设步骤总结
- 【嵌入式Linux】嵌入式Linux驱动开发基础知识之设备树模型
- 计算机网络(八)——web的工作原理
- OK6410开发板学习之外部中断(按键点亮led和蜂鸣器)
- linux多线程学习(五)——信号量线程控制
- 高性能HTTP加速器Varnish(概念篇)
- mysql space id_MySQL8.0新特性:增加系统文件追踪space ID和物理文件的映射-阿里云开发者社区...
- Java数组的转换和拷贝
- 力扣892.三维形体的表面积
- 【译】成为优秀程序员(和人类)的101个技巧