Meta 的 Instagram Live 上傳改走 MoQ,取代自家 RUSH
Meta Engineering Blog · 2026-10-12
Meta 把 Instagram Live 在 iOS 與 Android 上的直播上傳(ingest)從自家的 RUSH 協定,換成 IETF 正在制定的 Media over QUIC(MoQ)。MoQ 路徑在 rollout 使用的串流品質與可靠度指標上與 RUSH 持平,但文章沒有公布任何數值。這項工作也在 DEMOQED 2026 上發表。
原本的問題
Meta 的直播過去近十年跑在 RUSH(Reliable Ultra-low-latency Streaming over HTTP)上,這是一個建立在 QUIC 之上的內部協定,目的是擺脫 RTMP。RUSH 解決了 Meta 自己的問題,但它是私有格式,只有 Meta 的客戶端與後端認得,無法和其他廠商的 relay、CDN 互通。
MoQ 是 IETF 的新標準,Meta、Google、Akamai、Cisco、Cloudflare 與學界都參與。它的傳輸層草案目前是 draft-ietf-moq-transport-22(2026 年 10 月 1 日更新,目標為 Standards Track,2027 年 4 月 4 日到期)。Meta 的 RUSH 草案 draft-kpugin-rush 被文章稱為 MoQ 的前身。
MoQ 的資料模型
MoQ 是 publish/subscribe 協定,核心抽象是 Track:一個可定址的媒體物件串流。下表是草案定義的層級。
| 名稱 | 意義 |
|---|---|
| Track | namespace 內的 group 集合,訂閱者以它為單位請求 |
| Group | track 內的物件集合,是訂閱的加入點 |
| Subgroup | 同一 group 內的一串物件,通常走同一條 stream |
| Object | 可定址的最小單位,以 namespace、track 名稱、group ID、object ID 識別 |
Relay 只負責快取與轉送物件,不解析媒體內容。文章列出的特性包括:沒有跨 stream 的 head-of-line blocking、可依訂閱調整延遲(互動情境約 ~100 ms,封存或緩衝情境為數秒)、relay 可丟棄、排序或重送物件,以及標準化的 TCP fallback(WebTransport over HTTP/2 或 QMUX)。
Meta 怎麼上線
客戶端使用 Meta 開源的 C++ 函式庫 moxygen,它建立在 folly、mvfst 與 proxygen 之上,授權為 Apache 2.0,並含 relay(moqrelayserver)與一套 50 個情境的 conformance 測試。MoQ 已整合進四個 App。
後端沒有跟著改。MoQ 流量先在專用的 edge 端點終結,再由暫時的轉換層把 MoQ frame 轉成現有後端期待的 RUSH 格式。每場直播用一個 config 參數選擇 MoQ 或 RUSH;stream URL 的產生端依實驗分組把符合資格的直播導向 MoQ 端點,因此流量比例「可在數分鐘內調整」,不必等 App 版本普及。
broadcast config: transport = MoQ | RUSH
stream URL service: experiment group -> MoQ edge endpoint
edge: MoQ frames --(translation layer)--> RUSH format --> existing backend遇到的三個障礙
- 規格仍在變動:Meta 固定使用特定 draft 版本、為舊客戶端保留相容 shim,並把經驗回饋給 IETF 工作群組。moxygen 目前支援 draft-18(實驗性互通測試中)與 draft-16,draft-14、draft-15 已列為棄用。
- 防火牆:有「相當一部分」網路會封鎖或限速 UDP/443。連線開始時 TCP 與 QUIC 一起競速,由先完成 handshake 的決定傳輸方式。
- 除錯:加密讓封包框架不可見,Meta 在 edge 自建能看到物件層級的 MoQ 追蹤。
影響範圍
自建直播上傳鏈路的團隊,現在有一個大型營運方的實例:先在 edge 加轉換層、保持後端不動,就能分階段遷移。若你還在用 RTMP 或私有 QUIC 協定,要評估的是 UDP/443 被擋時的 TCP fallback 與 edge 的物件層級可觀測性,這兩項是 Meta 實際花力氣處理的地方。
想跟進實作的人,要鎖定 draft 版本並預期它會繼續更動。draft-ietf-moq-transport 目前已到 22 版,moxygen 對新整合的建議是 draft-16。文章未公布延遲、串流量或相對於 RTMP 的改善數字,也沒有說明 RTMP 的具體缺點,這些都不應從文中推論。
Meta 後續計畫包括以 subgroup 讓音訊、視訊與 metadata 走獨立 stream、跨更多 App 推廣 MoQ,並採用 QMUX 以便最終淘汰 RUSH,同時探索即時互動式 AI。