
要判断一场直播需要多少带宽,必须区分两类带宽:一是主播上行到CDN的推流带宽(上行),二是CDN对外的出流带宽(下行/出口)。关键因素包括:①主播或多路推流的总码率;②并发观看人数;③是否使用多码率(自适应码流);④视频协议(HLS/RTMP/SRT等)和封包开销;⑤CDN缓存与分发策略(是否有多节点、回源比例)。
上行主要取决于主播端的码率设置,例如1080p常见码率2.5–6 Mbps;出流则等于每个观看者收到的码率乘以并发人数,再加上协议/HTTP开销。计算时通常把协议开销按5%–10%估算。
还要考虑突发流量(例如短时间并发上升)、重试/拉取失败带来的重复拉流、以及CDN回源流量(低缓存命中时回源到源站)。
为了保证稳定,建议在理论值上预留20%–50%的冗余。
单路推流指主播只向CDN推送一条编码流。计算步骤:
1)确定视频码率R(单位:Mbps),如R=4 Mbps;
2)估算音频码率A(如128 kbps = 0.128 Mbps);
3)估算协议与封包开销系数k(通常取1.05–1.1);
公式:主播上行带宽 ≈ (R + A) × k。举例:R=4 Mbps,A=0.128 Mbps,k=1.1,则上行≈(4+0.128)*1.1≈4.58 Mbps。
对于单路推流但N个观众的情况,CDN出口带宽 ≈ (R + A) × N × k_out,k_out考虑HTTP/HLS分片,多路复用等开销(取1.05–1.15)。若N=1000,上例中R+A=4.128 Mbps,k_out=1.08,则出流带宽≈4.128*1000*1.08≈4458 Mbps ≈4.36 Gbps。
当使用CDN时,出流带宽分布在多个节点,付费模式通常按峰值带宽计费而非总流量。
多路推流场景常见于:主播推送多码率(不同清晰度)或多路主播同时推流。计算需区分两类:A) 单主播多码率推流;B) 多主播并发推流。
假设推送三条码率流:R1(720p)=3 Mbps,R2(480p)=1.5 Mbps,R3(360p)=0.6 Mbps,音频共用128 kbps。若多码率分开推送,主播上行带宽 ≈ (R1+R2+R3 + A) × k。例如取k=1.05,则上行≈(3+1.5+0.6+0.128)*1.05≈6.02 Mbps。
部分平台或CDN支持转码(转封装或云端转码),可以只推高码率一路,CDN转生成其它码率。这样上行带宽少(≈高码率+音频),但会增加CDN成本并产生延时/质量风险。
若有M个主播同时推流,每个主播平均上行带宽B_i,则总上行带宽需求为ΣB_i(应该在机房/推流网关处保证),例如10个主播各推4.5 Mbps,总上行≈45 Mbps。
集中一个出口(如直播间机房)会产生聚合上行压力,需要留出链路冗余与QoS策略。
计算步骤:1)列出每个清晰度的码率及所占观众比例;2)按并发用户数N分配各清晰度观众数量;3)求和乘以协议开销。
假设并发N=5000,单一码率R_total=2.5 Mbps(含音频),k_out=1.08,则CDN出口峰值≈2.5*5000*1.08≈13,500 Mbps≈13.5 Gbps。
并发N=5000,清晰度分布:1080p 20% 4 Mbps,720p 30% 2.5 Mbps,480p 30% 1.2 Mbps,360p 20% 0.6 Mbps,k_out=1.08。
计算:N1=1000×4=2000 Mbps,N2=1500×2.5=3750 Mbps,N3=1500×1.2=1800 Mbps,N4=1000×0.6=600 Mbps,总合=8150 Mbps,乘以k_out→≈8802 Mbps≈8.6 Gbps。
CDN通常按地域分配节点,实际付费按某一区域峰值或全球峰值计费。建议基于峰值同时考虑每个POD/节点的峰值。
可通过分层缓存、限制直播高码率用户数、使用多CDN策略或按需限速来控制峰值带宽。
实际估算流程:1)基于历史数据或试播估算并发峰值;2)确定码率和是否多码率;3)计算理论上行与出流带宽并加上安全冗余(建议20%–50%);4)与CDN运营商确认峰值承诺与计费方式。
1)使用多码率+自适应码流,降低高并发时的高码率占比;2)启用CDN边缘缓存和分层回源,减少回源带宽;3)限速或分区发布(分批次推送),错峰处理峰值;4)启用多CDN或按地域分发,避免单点带宽瓶颈;5)使用SRT/UDP+FEC等协议在不可靠网络下减少重传。
CDN费用常按峰值带宽和总流量计费。峰值带宽通常以15分钟或5分钟峰值计算;合同中需明确计费周期、回源费用、转码费用与峰值保护策略。
上线前做压力测试并监控关键指标:上行带宽、出流峰值、丢包、延时和错误率。预先准备回退方案(降级码率、临时扩容、多CDN切换)以应对突发流量。