带宽是“按需”和“按并发”计算的

直播服务器的带宽需求主要取决于两个核心因素:

  1. 视频码率:单个观众观看时,每秒需要传输多少数据。
  2. 并发观众数:有多少观众同时在线观看。

基本公式:服务器出口带宽 ≥ 视频码率 × 并发观众数

这只是最基础的公式,实际情况要复杂得多,下面我们详细分解。


决定带宽需求的四大关键因素

视频码率

这是影响带宽最直接的因素,码率越高,画质越清晰,但对服务器和观众的带宽要求也越高。

  • 码率单位:通常用 Kbps (千比特/秒) 或 Mbps (兆比特/秒) 表示。1 Mbps = 1024 Kbps
  • 码率与画质对应关系(大致参考)
    • 360p (标清):300 - 600 Kbps
    • 480p (高清):600 - 1000 Kbps
    • 720p (超清):1500 - 3000 Kbps (即 1.5 - 3 Mbps)
    • 1080p (全高清):3000 - 6000 Kbps (即 3 - 6 Mbps)
    • 2K/4K (高清):8000 Kbps (8 Mbps) 以上,甚至更高

注意:码率还与视频内容(静态画面 vs 动态画面)、编码格式(H.264, H.265/HEVC)和帧率有关,H.265 编码能在画质相同的情况下,比 H.264 节省约 50% 的带宽。

并发观众数

这是指在同一时刻观看直播的总人数,这是服务器带宽需求的乘数。

  • 小规模直播:几十到几百人。
  • 中型直播:几千到上万人。
  • 大型直播/活动:数万到数十万人甚至更多。

并发观众数直接决定了服务器需要同时为多少路视频流提供服务。

直播协议

不同的直播协议,对带宽的要求和计算方式不同。

  • RTMP (推流协议)

    • 作用:主要用于主播端将视频流推送到服务器。
    • 带宽计算:只需要计算一路推流带宽,主播用 4 Mbps 的码率推流,那么服务器接收只需要 4 Mbps 的带宽。这不直接关系到观众的观看体验。
  • FLV / HLS / DASH (拉流协议)

    • 作用:主要用于观众端从服务器拉取视频流进行观看。
    • 带宽计算:这是服务器出口带宽的主要消耗者,服务器需要为每一个并发观众提供一路视频流。
    • 关键点:如果服务器直接将源流(如RTMP)分发给所有观众,这种模式叫“源站直推”,对服务器的压力和带宽要求极高,通常使用CDN (Content Delivery Network) 来分发。

是否使用 CDN (内容分发网络)

这是决定服务器带宽成本和压力的最关键因素

  • 不使用 CDN (源站直推)

    • 所有观众的请求都直接访问你的直播服务器。
    • 服务器带宽 = 视频码率 × 并发观众数。
    • 缺点:服务器压力巨大,出口带宽成本极高,且观众访问延迟高,体验差。仅适用于极小规模的内部测试。
  • 使用 CDN (推荐)

    • 工作原理
      1. 主播将 RTMP 流推送到你的源站服务器
      2. 源站服务器将流推送到 CDN 的边缘节点
      3. 全球各地的观众从离他们最近的边缘节点拉取流进行观看。
    • 带宽计算
      • 源站服务器带宽:只需计算一路推流到 CDN 的带宽(4 Mbps)。
      • CDN 出口带宽:由 CDN 服务商提供,费用通常按流量或带宽峰值计费,你只需要预估总流量,无需自己购买昂量的带宽。
    • 优点:极大减轻源站压力,降低延迟,提升全球用户体验,成本效益高。

带宽计算实例

我们通过几个场景来计算,假设我们使用 H.264 编码,720p (2.5 Mbps) 的视频

小型内部会议/培训 (不使用 CDN)

  • 目标:200 人同时在线观看。
  • 视频码率:2.5 Mbps。
  • 并发观众数:200。
  • 服务器所需带宽:2.5 Mbps × 200 = 500 Mbps
  • 你需要一台至少能提供 500 Mbps 出口带宽的服务器,这种情况下,云服务器(如阿里云、腾讯云)的带宽费用会很高。

中型活动/电商直播 (使用 CDN)

  • 目标:5,000 人同时在线观看。
  • 视频码率:2.5 Mbps。
  • 并发观众数:5,000。
  • 总带宽需求:2.5 Mbps × 5,000 = 12,500 Mbps = 5 Gbps
  • 分析
    • 不需要自己购买 12.5 Gbps 的带宽。
    • 你只需要一台能将一路 2.5 Mbps 的 RTMP 流推送到 CDN 的普通云服务器即可。
    • 这 12.5 Gbps 的带宽将由 CDN 服务商在全球的节点来承载和分摊,你只需向 CDN 服务商支付相应的流量费或带宽峰值费。

大型游戏/娱乐直播 (使用 CDN,多码率自适应)

  • 目标:10 万人同时在线观看,追求最佳体验。
  • 策略:使用多码率自适应码率流,服务器会同时编码并分发多种清晰度的流(如 360p, 720p, 1080p),让观众的网络状况自动选择最合适的码率。
  • 视频码率
    • 1080p: 4 Mbps
    • 720p: 2.5 Mbps
    • 480p: 1 Mbps
    • 360p: 0.5 Mbps
  • 观众分布预估 (这是一个关键假设)
    • 20% 观众看 1080p: 10万 × 20% = 2万人
    • 50% 观众看 720p: 10万 × 50% = 5万人
    • 20% 观众看 480p: 10万 × 20% = 2万人
    • 10% 观众看 360p: 10万 × 10% = 1万人
  • 总带宽需求
    • (4 Mbps × 2万) + (2.5 Mbps × 5万) + (1 Mbps × 2万) + (0.5 Mbps × 1万)
    • = 80,000 Mbps + 125,000 Mbps + 20,000 Mbps + 5,000 Mbps
    • = 230,000 Mbps = 230 Gbps
  • 分析
    • 这个带宽需求是巨大的,但同样由 CDN 来承载。
    • 核心工作是保证源站服务器能稳定地将一路高码率(如 4 Mbps)的原始流推送到 CDN。
    • CDN 服务商通常会提供“转码”服务,你可以将一路高码率流推给它,它会自动帮你生成多码率流并进行分发,这比你自己做更专业、更稳定。

其他重要考虑因素

  1. 推流上行带宽

    • 这是你主播端需要的带宽,而不是服务器。
    • 主播上行带宽 ≥ 视频码率 × 1.5,需要留出余量,以保证推流稳定,防止卡顿。
    • 用 4 Mbps 码率直播,主播的网络上行至少需要 6 Mbps 以上。
  2. 服务器配置

    除了带宽,CPU、内存、磁盘 I/O 也至关重要,特别是如果你需要自己进行转码或录制时,对于源站服务器,CPU 和内存是瓶颈的概率比带宽更高。

  3. 码率控制

    • 使用CBR (Constant Bitrate, 恒定码率) 可以保证带宽占用稳定,适合直播。
    • 使用VBR (Variable Bitrate, 可变码率) 可以在保证画质的同时,平均码率更低,但对网络波动更敏感。

总结与建议

直播规模 并发观众数 视频码率 (示例) 是否使用 CDN 源站服务器带宽需求 关键点
小型/测试 < 500人 1 - 2 Mbps 可选 码率 × 并发数 成本可控,体验一般
中型/活动 1k - 5万人 2 - 4 Mbps 强烈推荐 一路推流码率 (如 4 Mbps) 核心是选择好的CDN服务商
大型/商业 > 5万人 3 - 6+ Mbps 必须使用 一路推流码率 (如 6 Mbps) 需要ABR多码率、全球CDN节点

给您的最终建议:

  1. 明确你的目标:首先确定你的直播预计能达到的最高并发观众数和期望的视频画质
  2. 选择 CDN 是关键:对于任何面向公众的直播,都应使用 CDN 服务,这是现代直播的标配,能让你以最低的成本和最高的效率触达海量用户。
  3. 计算源站需求:你的源站服务器(接收主播推流的服务器)配置要求不高,主要看其上行带宽(用于推流到CDN)和CPU/内存(用于处理推流和可能的简单转码)。
  4. 与 CDN 服务商沟通:联系主流的 CDN 服务商(如阿里云、腾讯云、百度云、网宿、七牛等),告诉他们你的预估并发数、码率和观众分布,他们会为你提供专业的带宽方案和报价。