產業脈動 2026 年 10 月 13 日

2026-10-13 — Meta 的 Instagram Live 上傳改走 MoQ,取代自家 RUSH

primary=https://engineering.fb.com/2026/10/12/video-engineering/shipping-media-over-quic-at-meta-scale-for-instagram-live-ingest/ primary=https://datatracker.ietf.org/doc/draft-ietf-moq-transport/ primary=https://github.com/facebookexperimental/moxygen primary=https://datatracker.ietf.org/doc/draft-kpugin-rush/

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:一個可定址的媒體物件串流。下表是草案定義的層級。

名稱意義
Tracknamespace 內的 group 集合,訂閱者以它為單位請求
Grouptrack 內的物件集合,是訂閱的加入點
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。

原始來源:Meta Engineering、draft-ietf-moq-transport、moxygen


End of article
0
Would love your thoughts, please comment.x
()
x