科技 Bestblogs · Engineering at Meta · 14小时前 · AI 生成
Meta 规模化为 Instagram 直播推流部署基于 QUIC 的媒体传输 Meta 将 Instagram Live 直播推流全面切换至开放标准协议 Media over QUIC (MoQ)。此前 Meta 维护着 RTMP、HLS、WebRTC 等多套推流协议栈,MoQ 实现了推流与播放的底层传输统一。文章详细介绍了背后的工程决策:通过边缘翻译层规避后端大规模重写,利用基于 Track 的抽象改善拥塞控制,并使用 QMUX 等标准 TCP 回退机制处理防火墙对 UDP 的拦截。对关注大规模实时视频系统架构的工程师很有价值。原文 ↗ 原文 ↗
核心观点
▍ Meta 决定弃用内部碎片化的推流协议 (RUSH) 及 RTMP、HLS、WebRTC 等混合栈,全面迁移到统一开放标准 Media over QUIC (MoQ),用以简化运维并实现在大规模下更低延迟、更具韧性的直播视频传输。 01 Instagram Live 的 iOS 和 Android 应用已经使用 MoQ 进行直播视频推流,这标志着该协议从实验阶段进入了生产级大规模部署。 02 MoQ 的核心抽象是 'Track',这是一个可寻址的媒体对象流,而非字节流。这使得中继节点能够在不解码完整有效负载的情况下,对单个媒体对象进行优先级排序或选择性丢弃,从而实现更精细的拥塞控制。 03 为了在不进行大规模后端重构的情况下完成部署,Meta 在边缘服务器实现了翻译层,将 MoQ 帧转换为其内部遗留的 RUSH 协议格式,从而允许分阶段、可回滚的灰度发布。 04 为了处理企业防火墙等网络环境对 UDP/443 端口的拦截,Meta 采用了基于标准的 TCP 回退机制 (QMUX),以确保所有用户都能获得良好的连接性。 05 文章指出,翻译层是 '临时脚手架',一旦 MoQ 成为唯一的推流路径,后端将原生消费 MoQ,届时可完全拆除该翻译层以释放性能。 反方 / 局限
— 文章对 MoQ 的主要局限着墨不多,但暗示了部署中的主要风险:现有后端系统对旧协议 (RUSH) 的深度依赖,使得直接替换不可行,必须依赖翻译层这种暂时的工程妥协。
前置背景 Meta为什么需要统一协议栈
Meta此前在 Instagram Live 上维护着 RTMP(推流)、HLS/DASH(播放)、WebRTC(连麦)以及内部 RUSH 协议共四套独立的传输栈,每套协议对应不同的库、运维流程和故障排查手段。这种碎片化格局使得一项底层优化要重复适配多套系统,也阻碍了全链路延迟的统一控制。MoQ 的部署核心价值不在于引入新协议,而在于「推流与播放共用同一传输层」:从创作者设备到观众,全程不再需要协议转换,由此大幅降低了端到端延迟与运维复杂度。
▸ 2 条关联资料
▼
技术原理 Track 抽象如何改善拥塞控制
传统 RTMP/WebRTC 把视频视为字节流,中继节点只能按序转发整块字节,无法识别关键帧与普通帧。MoQ 引入「Track」作为媒体对象的可寻址流,每个 Object(对象)携带帧类型和依赖关系,中继节点可以在不解析完整载荷的情况下直接丢弃低优先级的 P/B 帧来应对突发拥塞。这意味着网络瓶颈时不是丢黑屏,而是优先牺牲非关键帧保证流畅度——类似 CDN 节点的智能帧选,由协议原生支撑而非上层 Hack。
▸ 3 条关联资料
▼
未来推演 MoQ 与 WebRTC 会如何融合
一批流媒体分析认为 MoQ 不会取代 WebRTC,而是最终走向混合架构:主播连麦走 WebRTC 确保毫秒级互动,百万观众分发走 MoQ 中继 CDN 实现低成本扇出。IETF MoQ 工作组在 draft-17 中已明确支持 WebTransport 作为传输回退,这意味着 MoQ 的未来不是「统一一切」,而是在不同延迟规模场景下与 WebRTC 形成互补分工。关键信号是 2026 年各 CDN 厂商的 MoQ 中继兼容性测试结果——能否在跨厂商互通中立下真实毫秒延迟标杆。
▸ 3 条关联资料
▼
延伸追问 UDP 被运营商 QoS 怎么办
MoQ 跑在 QUIC/UDP 上,但国内三大运营商对 UDP 443 端口均存在不同程度的限速或丢包策略,尤其在流量高峰时段可能将 UDP 流量划入低优先级队列。Meta 的解法是 QMUX:一条标准 TCP 回退通道将 MoQ 帧封装进 TCP 数据流传输。这意味着即使防火墙完全拦截 UDP,MoQ 也能降级到 TCP 工作,但延迟会从 QUIC 的亚秒级回退到传统 TCP 水平。这类回退机制如何在国内大规模 CDN 场景中工程落地、降级触发阈值如何设定,是 MoQ 从生产验证走向全面普及前最实际的工程难题。
▸ 3 条关联资料
▼