Meta 在 Instagram Live 推流端部署

来自 Meta Engineering · 期号 2026-10-13

摘要

Meta 开始在 Instagram Live 的推流端部署 Media over QUIC(MoQ),这是一个新兴的 IETF 开放标准,用于实时视频传输。 此前,Meta 的直播视频一直运行在自研的 RUSH 协议上。RUSH 稳定运行了近十年,但 MoQ 将协议开发从 Meta 内部转向了行业共享的标准。 MoQ 的核心抽象是 Track,一个可寻址的媒体对象流,通过中继网络分发。中继只转发数据,不解析媒体内容。它基于 QUIC 构建,避免了 TCP 的队头阻塞,支持更快的连接建立和连接迁移。 在 Instagram Live 上,MoQ 的推流质量指标与 RUSH 持平。下一步是将 MoQ 扩展到端到端的直播架构,并探索在实时 AI 等场景中的应用。 本文是 Meta 工程团队的技术复盘,详细说明了协议替换的动机、架构设计和部署经验。

深读

导读 Meta 在 Instagram Live 的推流端部署了 Media over QUIC (MoQ),这是一个新兴的 IETF 开放标准,用于替代其自研了近十年的 RUSH 协议。本文是 Meta 工程团队的技术复盘,详细说明了协议替换的动机、架构设计和部署经验。读完可以了解 MoQ 的核心设计如何解决传统媒体协议栈的碎片化问题,以及 Meta 在 Instagram Live 这一量级上完成协议替换的具体工程策略。 关键信息 - MoQ 的核心抽象是 Track,一个可寻址的媒体对象流,通过中继网络分发。中继只转发数据,不解析媒体内容。 - MoQ 基于 QUIC 构建,避免了 TCP 的跨流队头阻塞,支持更快的连接建立和连接迁移。 - 在 Instagram Live 上,MoQ 的推流质量指标与 RUSH 持平,这是该阶段的目标。 - Meta 的 MoQ 客户端基于其开源库 moxygen 构建,该库集成了 Meta 的 QUIC 协议栈 mvfst。 - 部署策略是在边缘节点用翻译层将 MoQ 帧转换为后端已有的 RUSH 格式,后端无需改动。 - 对于 UDP/443 被封锁的网络,MoQ 可在直播开始时通过握手选择 TCP 或 QUIC 作为传输层。 逐节讲解 媒体协议栈的碎片化问题 互联网上积累了多种媒体协议,各为解决特定问题而生:RTMP 用于推流,HLS 和 DASH 用于播放,WebRTC 用于实时通话,RUSH 用于不适用上述协议的场景。在 Meta,一个用户在同一应用内发起直播和进行语音通话,会触及三种不同的协议栈,每套栈都有独立的服务基础设施、监控和运维团队。这种分离在过去是合理的,但随着直播视频、实时 AI 和生成式 AI 创作工具在同一个产品面上出现,用例之间的界限开始模糊。一个统一的传输协议可以减少工程团队需要维护的定制传输层数量。 MoQ 的工作原理 MoQ 是一个正在 IETF 制定的标准,参与方包括 Meta、Google、Akamai、Cisco、Cloudflare 和学术界。Meta 此前近十年使用的 RUSH 协议也是基于 QUIC 的自研方案,MoQ 的许多经验来自 RUSH 的生产实践。 MoQ 的几个关键特性: - 基于 QUIC:独立流之间不会相互阻塞,连接建立更快,支持连接迁移。MoQ 会自动受益于 QUIC 新增的特性(如前向纠错 FEC)。 - 原生扇出与缓存:MoQ 中继本身就是缓存和请求合并端点,媒体流可直接通过 CDN 中继扩展,比传统 HTTP 流更高效。 - 每用例可调延迟:同一 Track 的两个订阅者可运行在不同延迟下(如交互参与者约 100 毫秒,存档服务数秒),基于可调的订阅交付属性。 - Track 感知交付:中继可根据元数据丢弃、优先处理或重放对象,在丢包时比字节流协…

读原文

本站只做摘要与索引,全部内容版权归原作者所有。