想象你经营着一家连锁餐厅的配送服务。顾客线上下单,后厨出餐,你需要把菜品送到顾客手中——有两条路线可选:一条是搭建“骑手中转站”,骑手从后厨取餐后原封不动地送到每一位顾客手里,点 A 套餐就送 A 套餐,点 B 套餐就送 B 套餐,中转站不拆包装、不改味道;另一条是开设“中央厨房”,把所有顾客的订单汇聚在一起,由大厨把食材混合、重新烹饪成一份统一的“合家欢套餐”,再按桌分发给所有人。前者轻快灵活,每多一位顾客只需多备一份配送;后者口味统一、出口整洁,但厨房的锅灶必须够大够快。WebRTC 的 SFU 与 MCU 架构之争,正是这场“中转配送 vs 中央厨房”的路线抉择。

岗位关联

掌握 SFU 与 MCU 的流量模型、服务器负载与拥塞控制差异,是实时音视频从业者做架构选型与容量规划的核心基本功——它决定了你的产品在多大规模下依然流畅、在多少成本预算内依然盈利。

目录
  1. 可视化演示
  2. 架构总览:中转站与中央厨房
  3. 流量模型:单份配送与平方爆炸
  4. 服务器负载:骑手与厨师的成本
  5. 拥塞控制:谁在喊停车
  6. 选型决策:开站还是开厨房
  7. 实践参考:市面上的外卖平台与中央厨房
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示SFU选择性转发、MCU混流编解码、流量模型对比及GCC拥塞控制与Simulcast多码率切换,含星座网络背景和发光动画。

本节配有交互动效(进入视口后自动加载,约 3KB)。

架构总览:中转站与中央厨房

你开了一家外卖公司,需要把后厨做好的菜送到顾客手中,面前有两条路线:要么建一个骑手中转站,骑手取餐后原样送达,不拆封、不改味;要么建一个中央厨房,把大家点的菜汇到一起,由大厨重新烹饪成一桌统一的流水席再分送。WebRTC 的服务器架构也恰好分这两派,名字拗口,但本质就是“转”与“炒”的差别。

SFU(Selective Forwarding Unit,选择性转发单元)收到某位参会者的视频流后,不解码、不重编码,直接复制转发给其他所有参会者。MCU(Multipoint Control Unit,多点控制单元)则相反:先把所有人的视频都收进来,经过解码、画面拼合与混合布局,再重新编码成一路新的视频流,统一分发给每个人。两者的工作流程天然决定了后续的流量与算力分布:SFU 是“原样转手”,MCU 是“加工重组”。

理解了这两套“人力配置”的分野,后面所有的成本模型与选型逻辑都顺理成章:中转站的核心成本在配送通道,中央厨房的核心成本在灶台人力。

SFU:  Sout=Sin,MCU:  Sout=M(Sin(1),Sin(2),…)\text{SFU}: \; S_{out} = S_{in}, \qquad \text{MCU}: \; S_{out} = M(S_{in}^{(1)}, S_{in}^{(2)}, \ldots)
  1. SFU 的流出等于流入$S_{in}$ 是服务器收到的原始码流,$S_{out}$ 是转发出去的码流。等号表示内容不变,服务器只是复制并选择路径转发。
    Sout=SinS_{out} = S_{in}
  2. MCU 的混合变换$M$ 是混合函数,输入是多路流 $S_{in}^{(1)}, S_{in}^{(2)}$ 等,输出是重新编码后的一路统一画面。
    Sout=M(Sin(1),Sin(2),…)S_{out} = M(S_{in}^{(1)}, S_{in}^{(2)}, \ldots)
  3. 两种执行的代价差异SFU 的“不做”省下 CPU 但放大带宽;MCU 的“做”耗尽算力但压缩了出口流量。
    不加工⇔耗带宽,混合加工⇔耗算力\text{不加工} \Leftrightarrow \text{耗带宽}, \quad \text{混合加工} \Leftrightarrow \text{耗算力}

流量模型:单份配送与平方爆炸

中转站每新增一位顾客,就意味着每道菜都要额外多送一份——送餐单量像滚雪球一样膨胀;中央厨房则不管外面有多少桌,后厨始终只出一份统一的“合家欢大拼盘”,只是按桌分份而已。这个直觉正是 SFU 与 MCU 流量模型的缩影。

假设会议有 $N$ 人参会,每路视频的上行码率为 $b$。SFU 模式下,每个人上行 1 路,服务器需要把这一路复制给其余 $N-1$ 人,所以服务器下行总量为 $N(N-1)b$,当 $N$ 较大时接近 $N^{2}b$——这便是常说的“平方爆炸”。MCU 模式下,每个人仍然上行 1 路,但服务器混合后只输出 1 路码流(码率记为 $b_{mix}$,通常约等于单路码率),下行总量为 $N \times b_{mix}$——线性温和地增长。

中转站每多一个顾客,骑手要额外多跑许多趟;中央厨房每多一桌,后厨只多分一份拼盘。搞清楚谁在按平方扩张,你就知道服务器带宽预算该按什么曲线采购。

BSFU≈N2b,BMCU≈NbmixB_{SFU} \approx N^{2}b, \qquad B_{MCU} \approx Nb_{mix}
  1. N 表示参会端点数量每个端点既是接收方也是潜在发送方,这决定了流量被复制的次数。
    N=同时接入会议的音视频端点个数N = \text{同时接入会议的音视频端点个数}
  2. b 是单路码率例如 720p 视频通话约 1~2Mbps,1080p 约 2~4Mbps,越清晰则 $b$ 越大。
    b=每一路上行视频的编码码率b = \text{每一路上行视频的编码码率}
  3. SFU 的下行推导每路源都要复制给其余 $N-1$ 个端点,共 $N$ 路源,故 $B_{SFU}=N(N-1)b \approx N^{2}b$。
    BSFU=N×(N−1)×b≈N2bB_{SFU} = N \times (N-1) \times b \approx N^{2}b
  4. MCU 的下行推导混合后只有 1 路流,每个端点接收 1 份,故 $B_{MCU}=N \times b_{mix}$。
    BMCU=N×bmixB_{MCU} = N \times b_{mix}
  5. 关键对比结论$N$ 越大,SFU 的平方项越失控,MCU 的优势越显著;但这份优势是用服务器的“炒菜算力”换来的。
    BSFU/BMCU≈N×b/bmix≈NB_{SFU} / B_{MCU} \approx N \times b / b_{mix} \approx N

服务器负载:骑手与厨师的成本

中转站省钱省在“没有厨房”,但仓库的货架(带宽出口)需要堆满同样规格的餐盒;中央厨房省在“不用重复送餐”,但厨师团队(CPU/GPU)必须一刻不停地颠勺。到了服务器侧,两种架构的资源账单截然不同。

SFU 不转码,CPU 主要用于 RTP 包的转发、路由、统计与 NAT 穿透辅助,每个转发链路的开销很小;MCU 则每路流都要解码、参与混合布局、再重新编码,每一步都是重度计算。结果就是:MCU 的计算成本与参会人数 $N$ 线性相关,但系数极大;SFU 的计算成本同样随 $N$ 增长,但系数的量级远小于编解码。

预算有限时,开中央厨房要把钱花在雇更多厨师(算力),开中转站要把钱花在租更大的冷库与配送通道(带宽)。看懂这张账单,才知道钱该往哪边倾斜。

CMCU≈N(cdec+cenc),CSFU≈N⋅cfwd,cfwd≪cdec+cencC_{MCU} \approx N(c_{dec}+c_{enc}), \qquad C_{SFU} \approx N \cdot c_{fwd}, \quad c_{fwd} \ll c_{dec}+c_{enc}
  1. c_dec 与 c_enc解码一路视频和编码一路视频所需的计算量,通常用 CPU 占用率或 GPU 负载衡量。
    cdec=单路解码开销,cenc=单路编码开销c_{dec} = \text{单路解码开销}, \quad c_{enc} = \text{单路编码开销}
  2. MCU 的 N 倍重开销$N$ 路输入要解码 $N$ 次,混合后还要编码,故 $C_{MCU}$ 等于 $N$ 乘以单路编解码开销之和。
    CMCU=N×(cdec+cenc)C_{MCU} = N \times (c_{dec} + c_{enc})
  3. SFU 的轻量转发$c_{fwd}$ 只是包级复制与路由的成本,比编解码小一到两个数量级。
    cfwd≪cdec+cencc_{fwd} \ll c_{dec} + c_{enc}
  4. 部署含义MCU 要买高配 CPU/GPU 机器,SFU 要买高带宽出口机器;同样预算下,两者能支撑的并发人数天差地别。
    CMCU≈(10∼100)×CSFU  (同 N 同码率)C_{MCU} \approx (10 \sim 100) \times C_{SFU} \; (\text{同 N 同码率})

拥塞控制:谁在喊停车

雨天路滑,外卖车队遇上了堵车。中转站的做法是让每个骑手自己观察路况、自行减速;中央厨房的做法则是调度台统一发布指令:所有车降速、统一重新规划路线。WebRTC 的拥塞控制,也分这两种哲学。

在实际信道中,丢包率 $p_{loss}$ 是衡量拥塞的核心信号。发送端通过 RTCP 反馈(REMB / TWCC)感知丢包与延迟变化,并据此调整发送码率。SFU 架构下,服务器只做转发,带宽探测与码率决策基本发生在端侧:每个发送端根据接收端反馈的丢包率自行降速,反应快但不一定协调。MCU 架构下,服务器掌握全局接收情况,可在混合前统一决定“全员降码率”或“只保留音频”,集中调度一致性更强,但多了一道决策延迟。

中转站的路况由每个骑手自行判断,反应快但步调不一;中央厨房由调度台统一指挥,整齐划一但多了一层指挥延迟。拥塞控制的设计取舍,本质就是“分散自治”与“集中调度”的权衡。

Rsend=Rtarget×(1−ploss)R_{send} = R_{target} \times (1 - p_{loss})
  1. R_send 是实际发送码率发送端编码器真正采用的视频码率,决定了当前画面的清晰度。
    Rsend=编码器实际输出码率R_{send} = \text{编码器实际输出码率}
  2. R_target 是目标码率由分辨率、帧率、画面复杂度共同决定的理想码率。
    Rtarget=当前分辨率与帧率下的目标码率R_{target} = \text{当前分辨率与帧率下的目标码率}
  3. p_loss 是丢包率由接收端统计并反馈给发送端,反映网络拥塞程度。
    ploss=实时丢包率  (0∼1)p_{loss} = \text{实时丢包率} \; (0 \sim 1)
  4. 调整动作丢包率越高,发送码率下降越多,用画质换流畅;SFU 中该决策由各发送端独立执行,MCU 中可由服务器统一收放。
    Rsend=Rtarget×(1−ploss)R_{send} = R_{target} \times (1 - p_{loss})

选型决策:开站还是开厨房

开店之前先看客流量:如果每天只有三五桌客人,开中央厨房显然是浪费,一个小档口加几个骑手足矣;如果要做千人大食堂,就必须建中央厨房统一出餐,或者设计“多窗口 + 统一打菜”的混合动线。SFU 与 MCU 的选型,同样取决于规模、网络与预算三个变量。

小型固定会议(如 4~10 人)对统一画质、录制与管控有较高要求,MCU 的“一份拼盘”模式简单可靠。中大型会议一旦超过某个临界规模,$N^{2}$ 的带宽压力会迅速击穿机房预算,SFU 成为事实主流。更常见的工程实践是混合架构:主讲人上行给 SFU,观众只收不发,再通过“N 选 1 转推 CDN”把主流推到海量观众,从而把服务器出口从平方级降到线性级。

小馆子请一位大厨兼前台绰绰有余,万人食堂必须让大部分客流走“只看一份菜单”的快餐线。选型没有绝对优劣,只有客流量(规模)、路况(网络)与预算(成本)的匹配。

N≤Nth⇒MCU,N>Nth⇒SFU,Nth≈8∼20N \le N_{th} \Rightarrow \text{MCU}, \qquad N > N_{th} \Rightarrow \text{SFU}, \qquad N_{th} \approx 8 \sim 20
  1. N_th 是经验阈值业界实践表明 8~20 人是两种架构成本曲线的交叉区间。
    Nth≈8∼20N_{th} \approx 8 \sim 20
  2. 小于阈值选 MCU小规模下 MCU 的算力成本可接受,换取统一画质与集中管控。
    N≤Nth⇒MCUN \le N_{th} \Rightarrow \text{MCU}
  3. 大于阈值选 SFU超过阈值后平方级带宽不可承受,SFU 的线性算力增长更划算。
    N>Nth⇒SFUN > N_{th} \Rightarrow \text{SFU}
  4. 混合方案用“发言者数量 $N_{speaker}$”替换“全员数量 $N$”,出口带宽从 $N^{2}$ 降为 $N_{speaker} \times N_{viewer}$。
    Bhybrid≈Nspeaker×Nviewer×b+Nspeaker×bB_{hybrid} \approx N_{speaker} \times N_{viewer} \times b + N_{speaker} \times b

实践参考:市面上的外卖平台与中央厨房

想省心省力,可以直接租用别人建好的中转站(开源 SFU)或中央厨房(云厂商 MCU),不必从零砌灶台。工程团队的核心任务,是判断哪种“配送体系”适合自己。

mediasoup 是 Node.js 生态的 SFU 核心库,灵活嵌入自研服务,适合有定制需求的团队;Jitsi Videobridge 是久经考验的 SFU 实现,自带完整会议套件,生产可用性高;LiveKit 提供云原生 SFU 平台,REST API 与客户端 SDK 齐全,是快速上车的选择。云厂商(腾讯云、声网等)内部常为 SFU/MCU 混合架构,对外提供“单流上行 + 转推 CDN”的能力,把超大规模分发的成本转移给 CDN 流量包。

多数团队不会真的自建骑手军团或中央厨房——他们会把部分路段包给外卖平台(CDN),把部分菜品外包给云厂商(云 MCU)。理解了 SFU 与 MCU 的流量与算力本质,你才能理性评估:自己该租哪条配送线路、该租多少容量。

Bhybrid≈Nspeaker×Nviewer×b+Nspeaker×bB_{hybrid} \approx N_{speaker} \times N_{viewer} \times b + N_{speaker} \times b
  1. N_speaker 是发言者人数真正开麦/开摄像头、需要被所有人看到的人。
    Nspeaker=实际上行并被转发的发言端数量N_{speaker} = \text{实际上行并被转发的发言端数量}
  2. N_viewer 是观众人数只收不发(或仅少量上行信令)的观看端数量。
    Nviewer=纯接收端数量,Nspeaker+Nviewer=NN_{viewer} = \text{纯接收端数量}, \quad N_{speaker} + N_{viewer} = N
  3. 混合架构的出口观众下行只需要 $N_{speaker}$ 路转发,而非全员 $N$ 路。
    Bhybrid=Nspeaker×Nviewer×bB_{hybrid} = N_{speaker} \times N_{viewer} \times b
  4. CDN 卸载若把观众流量转推 CDN,CDN 侧的带宽费用通常远低于自建机房出口专线费用。
    Bhybrid→CDN 流量成本,服务器出口大幅下降B_{hybrid} \rightarrow \text{CDN 流量成本}, \quad \text{服务器出口大幅下降}

AI 应用场景

远程医疗多学科会诊(MCU 典型场景)

阶段:需求分析与架构选型

解决的问题:多科室专家会诊是典型的小规模固定会议(5~10 人),要求统一画面、稳定画质与强管控。如果采用纯 SFU,每路下行要复制多份,专家画面质量参差,录制与专家席展示也难统一;MCU 把多路视频混合为一路广播流,画面一致、录播简单、运维可控。

具体案例:某三甲医院远程会诊平台,专家端通过 WebRTC 接入,MCU 将 CT 影像共享流与两位主诊医生画面混合编码,输出 1080p 高清合流到各科室会诊室。整个平台仅需 2 台高配服务器即可支撑日均 40 场会诊。

万人直播互动课(SFU + CDN 混合场景)

阶段:容量规划与部署实施

解决的问题:大班直播课动辄上万观众,若人人可上行,SFU 的 $N^{2}$ 出口模型会瞬间击穿机房带宽。通过“主讲人单路上行 + SFU 转发 + 转推 CDN”的组合,把观众流量卸载到 CDN,服务器出口从 $N^{2}$ 降为 $N_{speaker} \times N_{viewer}$ 的线性可控水平。

具体案例:某在线教育公司用 mediasoup 搭建 SFU 集群,主讲端 2Mbps 上行,服务器转推 CDN 后,10 万学员通过 WebRTC/HLS 观看,对比纯 SFU 方案整体带宽成本下降约 90%,互动区延迟控制在 500ms 内。

混合架构支撑“大课+小组讨论”

阶段:技术选型与架构演进

解决的问题:一个平台既要承载千人主会场,也要支撑 6~8 人的小组讨论。单一架构无法两全:主会场用 SFU 保大规模,小组讨论用小规模 MCU 保证统一画质与低管理成本,两者通过信令层路由互通。

具体案例:某独角兽企业将 mediasoup 用作主会场 SFU,同时架设一组小型 MCU 节点处理小组讨论流,两组音视频通过 SFU 网关桥接。上线后单场活动支撑 5000 人主会场 + 200 个并行讨论组,服务器成本仅为纯 SFU 方案的 1/3。

Python 演示

python30 行
"""SFU vs MCU 带宽与成本模拟器"""  def sfu_traffic(n, b):    """SFU 流量模型:每路上行1份,服务器下行转发N-1份"""    up = n * b    down = n * (n - 1) * b    return up, down, up + down  def mcu_traffic(n, b, b_mix):    """MCU 流量模型:每路上行1份,混合后下行统一1份"""    up = n * b    down = n * b_mix    return up, down, up + down  def main():    print("人数  SFU总流量  MCU总流量  MCU省流量")    for n in [4, 8, 16, 32, 64]:        b = 1.0        b_mix = 1.0        _, _, sfu_total = sfu_traffic(n, b)        _, _, mcu_total = mcu_traffic(n, b, b_mix)        saving = (1 - mcu_total / sfu_total) * 100        print(f"{n:>4} {sfu_total:>9.1f} {mcu_total:>10.1f} {saving:>9.1f}%")  if __name__ == "__main__":    main()
目的:用 Python 模拟 SFU 与 MCU 在不同参会人数下的总流量,直观展示 SFU 的平方增长与 MCU 的线性增长,并计算 MCU 相对 SFU 的带宽节省比例。
  1. def sfu_traffic(n, b):定义 SFU 流量模型函数,输入人数与单路码率。
  2. down = n * (n - 1) * bSFU 下行核心公式:每路源被复制给其余 N-1 人,这是平方爆炸的根源。
  3. def mcu_traffic(n, b, b_mix):定义 MCU 流量模型函数,混合码率通常取单路码率。
  4. down = n * b_mixMCU 下行线性公式:只有一路混合流,按人数线性分發。
  5. saving = (1 - mcu_total / sfu_total) * 100计算 MCU 相对 SFU 节省的带宽百分比。
  6. for n in [4, 8, 16, 32, 64]:从 4 人到 64 人逐步放大规模,观察节省比例趋近 100%。

常见误区

误区网上都说 SFU 不用转码、只转发,那它应该不吃 CPU,服务器随便买台便宜的就行。

正解SFU 虽然不做编解码,但仍有 RTP 包路由、网络地址转换辅助、丢包统计、带宽探测、连接状态维护等任务。在高并发下,包级处理同样会消耗不少 CPU,只是系数远小于 MCU 的编解码开销。把它理解为“骑手虽然不炒菜,但取餐、认路、爬楼都要花力气”更准确。

为何常见:“SFU 不转码”被媒体反复强调,初学者容易把“不做某件事”等同于“什么都不做”。

误区SFU 给每人发 N-1 路,MCU 给每人发 1 路,都是下发给 N 个人,感觉差不多。

正解关键差别不在“份数”而在“每一份的大小”。SFU 的每份是原始单路码率 $b$,且每人要收 $N-1$ 份,总量是 $N(N-1)b$ 的数量级;MCU 的每份是混合后的统一码率 $b_{mix}$,通常约等于单路码率,总量只有 $N \times b_{mix}$。人数越大,两者差距越悬殊。

为何常见:只数了路径条数,没有把“每条路径承载的码率”和“复制次数”算进去。

误区SFU 只转发,路径短;MCU 要解码混合再编码,肯定是 MCU 更慢。

正解MCU 确实多了编解码处理延迟,但它拥有全局视角,能在服务器侧统一做抖动缓冲与码率调度,端到端的音画同步往往更平滑。SFU 虽转发快,但接收端要同时解码多路流并做播放同步,在弱网下可能产生更大的端到端延迟。延迟高低取决于整体设计,而非单看混合工序。

为何常见:把“多一道工序”直观等同于“一定更慢”,忽略了系统级的调度收益。

误区SFU 省 CPU,那一直加带宽就能无限支撑更多人,不需要考虑别的。

正解SFU 的出口带宽随参会人数平方增长,而单台服务器的物理网卡带宽是有限的;即使横向扩容,也还需要考虑客户端下行带宽上限、接收端多路解码能力与路由节点转发性能。实践中必须用“观众只收不发”“转推 CDN”“N 选 1”等手段把 $N^{2}$ 降下来。

为何常见:“加带宽”听起来是万能解,忘掉了真实世界的物理上限与成本曲线。

面试题

Q1. SFU 的中文全称是什么?

单选题 · easy

  • A.选择性转发单元← 正确答案
  • B.多点控制单元
  • C.混合拼接单元
  • D.分级缓存单元

答案:A。SFU(Selective Forwarding Unit)的核心动作是“选择性转发”——把码流原样复制给需要的人;B 是 MCU,C 和 D 是干扰项。记住“只转不炒”就能选对。

Q2. MCU 服务器的核心动作是?

单选题 · easy

  • A.原封不动转发RTP包
  • B.解码混合后重编码← 正确答案
  • C.只做信令消息透传
  • D.缓存并延迟发送

答案:B。MCU 把多路输入流解码、拼合画面、再编码成一路输出流,因此选 B;A 描述的转发行为属于 SFU,C/D 都不是 MCU 的核心职责。

Q3. 4 人参会、单路码率 1Mbps 时,SFU 服务器出口下行带宽约为?

单选题 · mid

  • A.4Mbps
  • B.6Mbps
  • C.12Mbps← 正确答案
  • D.16Mbps

答案:C。SFU 下行总量为 $N(N-1)b=4 \times 3 \times 1=12$Mbps。4Mbps 是上行总量,16Mbps 是混淆了 $N^{2}b$ 的错误算法,6Mbps 无对应模型。

Q4. 同为 4 人参会、混合后码率 1Mbps 时,MCU 服务器出口下行带宽约为?

单选题 · mid

  • A.3Mbps
  • B.4Mbps← 正确答案
  • C.12Mbps
  • D.16Mbps

答案:B。MCU 下行总量为 $N \times b_{mix}=4 \times 1=4$Mbps。12Mbps 是 SFU 同场景的结果,3Mbps 少算了一路,16Mbps 是 $N^{2}$ 的错误外推。

Q5. 以下哪些属于 SFU 架构的特点?

多选题 · mid

  • A.服务器无需视频转码← 正确答案
  • B.出口带宽随人数平方增长← 正确答案
  • C.所有客户端画面强制一样
  • D.适合大规模直播型场景← 正确答案

答案:ABD。SFU 不转码、出口按 $N^{2}$ 增长,且观众只收不发时适合大规模直播,故选 A/B/D。C 是 MCU 的特点——混合后画面统一;SFU 下每个客户端可自由切换看谁的画面。

Q6. 64 人全员开麦的会议中,为控制 SFU 架构的成本,最有效的结构性措施是?

单选题 · extreme

  • A.限制观众上行权限← 正确答案
  • B.给服务器扩容到万兆
  • C.采用MCU全量混合
  • D.强制全员开启摄像头

答案:A。限制观众只收不发,可把出口从 $N^{2}$ 降为 $N_{speaker} \times N_{viewer}$,是结构性降本;扩容万兆是被动堆资源,MCU 全量混合会引入巨大转码成本,强制开摄像头反而恶化问题。

Q7. 以下哪些场景更适合选择 MCU 架构?

多选题 · mid

  • A.十人内小型固定会议← 正确答案
  • B.数千人公开直播课堂
  • C.需统一画质的制作直播← 正确答案
  • D.超大规模秀场直播

答案:AC。小规模固定会议与制作级直播追求统一画面与集中管控,MCU 的混合输出更合适;数千人公开课与超大规模秀场直播的核心矛盾是带宽成本,应选 SFU 或 SFU+CDN。

Q8. SFU 架构中,主要由谁决定是否降低视频发送码率?

单选题 · hard

  • A.服务器根据全局带宽决策
  • B.客户端基于丢包反馈决策← 正确答案
  • C.MCU中心控制器决策
  • D.CDN边缘节点缓存决策

答案:B。SFU 服务器只转发不干预,发送端客户端根据接收端反馈的丢包率与延迟自行调整码率;A/C 描述的是 MCU 的集中决策方式,D 与码率决策无关。

Q9. 以下哪些是常见的开源或云原生 SFU 实现?

多选题 · easy

  • A.mediasoup库← 正确答案
  • B.Jitsi服务端← 正确答案
  • C.LiveKit平台← 正确答案
  • D.Nginx代理

答案:ABC。mediasoup、Jitsi Videobridge、LiveKit 都是主流 SFU 实现;Nginx 是通用 Web 服务器/反向代理,不承担 WebRTC 媒体转发职责。

Q10. “SFU + N 选 1 转推 CDN”的混合架构主要解决什么问题?

单选题 · mid

  • A.大规模观看时的分发成本← 正确答案
  • B.客户端无需任何解码能力
  • C.消除所有转码延迟开销
  • D.服务器无需任何网络带宽

答案:A。混合架构把观众流量从服务器卸载到 CDN,解决大规模观看时的分发成本问题;B 是纯 MCU 才能实现的特性,C 过于绝对,D 不现实——服务器仍需要承载发言者上行与转发链路。