内容提要
Meta 在 Instagram 直播推流中用基于 QUIC 的开放协议 MoQ 替代自研 RUSH。MoQ 支持低延迟、可扩展媒体传输,通过中继缓存与转发按场景调节延迟,并具备 TCP 回退。经数月测试,其画质与可靠性已达 RUSH 同等水平,为未来端到端直播架构和实时 AI 交互奠定基础。
延伸解读
从自研 RUSH 到开放标准 MoQ 的动机
Meta 过去近十年依赖自研的 RUSH 协议处理直播推流,但 RUSH 主要由 Meta 单独维护,难以跟上开放生态的演进。MoQ 作为 IETF 标准,有 Google、Akamai、Cloudflare 等多方参与,能汇聚更多实现经验与互操作性测试。将直播推流迁移到 MoQ,意味着 Meta 不再独自承担协议演进,而是与行业共同改进,这有助于降低长期维护成本并加速创新。
MoQ 如何兼顾低延迟与大规模分发
MoQ 基于 QUIC,避免了 TCP 的队头阻塞,并支持快速连接建立和连接迁移。其核心抽象是 Track,中继节点可缓存和转发媒体对象而无需解析负载,天然支持扇出和请求合并。同一 Track 的不同订阅者可独立调节延迟,例如交互场景约 100 毫秒,而归档服务可容忍数秒。这种按需调节的能力让 MoQ 能覆盖从实时通话到缓冲播放的完整延迟谱系。
在 Instagram Live 落地的工程挑战
替换直播推流协议涉及客户端、后端和网络多个层面。Meta 在四个 App 中集成基于 moxygen 的 MoQ 发布端,通过配置参数在 MoQ 和 RUSH 间切换。边缘节点负责将 MoQ 帧转换为后端已理解的 RUSH 格式,避免重写整个管道。同时,服务端根据实验分组路由流 URL,实现快速扩缩容。此外,还需应对 IETF 草案演进、UDP/443 被部分网络屏蔽以及 QUIC 加密带来的调试困难。
当前成果与未来演进方向
经过数月实验,MoQ 在 Instagram iOS 和 Android 直播推流上已达到与 RUSH 同等的画质和可靠性指标,证明可以无感替换生产传输协议。下一步,Meta 计划将 MoQ 扩展到更多应用,利用子组在独立流上承载音视频和元数据,并引入基于标准的 TCP 回退(QMUX),最终目标是在端到端直播架构中实现部分可靠性,让播放器在丢包后跳过过时视频,避免延迟累积,并为实时 AI 交互提供统一传输基础。
Q&A
Meta 为什么要在 Instagram 直播推流中用 MoQ 替代自研的 RUSH?
RUSH 虽然稳定运行近十年,但它是 Meta 主要自行维护的协议,逐渐落后于开放生态。MoQ 是 IETF 标准,由多方共同贡献经验、测试互操作性并改进规范,能简化协议栈,为未来低延迟、实时 AI 等场景提供统一基础。
MoQ 协议的核心抽象是什么?它是如何工作的?
MoQ 的核心抽象是 Track,即发布者推送、订阅者接收的可寻址媒体对象流。它通过中继网络缓存和转发对象,中继无需解析媒体负载,只需理解 MoQ 帧和传递元数据。基于 QUIC 传输,支持独立流、快速连接建立和连接迁移。
MoQ 如何实现同一路流对不同订阅者提供不同延迟?
MoQ 支持按订阅调节传递属性,同一 Track 的两个订阅者可以同时以不同延迟运行,例如交互参与者约 100 毫秒,而归档或缓冲服务可延迟数秒。
在 Instagram 直播中部署 MoQ 时,Meta 如何避免重写后端系统?
Meta 在边缘端点设置翻译层,将 MoQ 帧转换为现有后端理解的 RUSH 格式,下游系统无需改动。翻译层是临时脚手架,未来后端将原生消费 MoQ。
部署 MoQ 过程中遇到了哪些主要挑战?
主要挑战包括:IETF 规范持续演进,需固定草案版本并维护兼容层;部分企业或运营商网络屏蔽 UDP/443,需在直播开始时选择 TCP 或 QUIC;QUIC 加密导致中间盒和抓包难以调试,需在边缘构建 MoQ 感知追踪。
MoQ 在 Instagram 直播上线后的效果如何?
经过数月实验,MoQ 路径在流质量指标和可靠性上达到与 RUSH 同等水平,成功替换生产传输而未影响创作者或观众,为后续端到端直播架构和实时 AI 交互奠定了基础。