慣性聚合 高效追蹤和閱讀你感興趣的部落格、新聞、科技資訊
閱讀原文 在慣性聚合中打開

推薦訂閱源

Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
WordPress大学
WordPress大学
雷峰网
雷峰网
博客园_首页
L
LangChain Blog
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
博客园 - Franky
M
MIT News - Artificial intelligence
S
SegmentFault 最新的问题
博客园 - 【当耐特】
Jina AI
Jina AI
腾讯CDC
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
罗磊的独立博客

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python)
MoQ 支援現已可在 Ant Media Server 中使用
Akeel Almas · 2026-05-20 · via DEV Community



公告

Ant Media Server 現已支援 MoQ
moq-hero

Petar Ostojic
作者
2026年4月17日
閱讀12分鐘
我們很高興宣布 MoQ 支援現在可在 Ant Media Server 中使用。Media over QUIC (MoQ) 是目前直播領域中最有趣的发展之一,我們希望早期支援能讓您開始與我們一同進行實驗.

在本篇文章中,我們將介紹 AMS MoQ 插件提供的功能、其內部運作方式,以及您開始使用所需了解的一切.

moq-hero
目錄
MoQ 是什麼
介紹 Ant Media Server 中的 MoQ 支援
MoQ 與 WebRTC 與 HLS
moq-lite 與完整 IETF moq-transport:目前情況
運作原理:架構概述
內建瀏覽器播放器與發布者
支援的編碼
開始使用
透過 MoQ 播放串流
透過 MoQ 將串流發布至 AMS
設定
常見問題
結論
MoQ 是什麼?
Media over QUIC (MoQ) 是基於 QUIC 和 WebTransport 所建構的逐流式媒體協議。它正由 IETF 工作組進行標準化,並獲得 Google、Cisco、Akamai、Cloudflare 等公司的支持,這為行業發展方向發出明確信號。

MoQ 的核心基於 QUIC,這是一種現代傳輸協議,能在單一連接上獨立處理多個數據流。這意味著延遲的視頻畫面不會影響其後的畫面,而這是像 HLS 這樣的協議所使用的基於 TCP 的傳輸方式的一個已知限制。在 QUIC 的基礎上,MoQ 使用 WebTransport 來直接從瀏覽器訪問這一功能,無需插件或原生應用程式。最終結果是與 WebRTC 相似的延遲,以及與 HLS 一樣能通過 CDN 扩展的傳輸模式。

若您想進行更深入的技術比較,請閱讀我們的文章 WebRTC vs. MoQ — 兩個協議,一個完全為兩者打造的平台。在本篇帖子中,我們專注於實際應用:AMS MoQ 插件的功能以及如何使用它。

介紹 Ant Media Server 的 MoQ 支援
注意
MoQ 仍然是一個正在發展的協議。IETF 標準正積極開發中,而目前的插件基於 moq-lite,是規範的一個實用且可部署的子集。我們持續監控標準的進展,並將在其成熟時發布更新。我們建議在規劃您的整合時考慮這一點。
AMS MoQ 插件為任何 Ant Media Server 部署添加了雙向 MoQ 支持

輸出
AMS → 瀏覽器檢視器
AMS 上的直播自動發布為 MoQ 廣播。瀏覽器客戶端透過 WebTransport 連接,並以亞秒級延遲接收視頻。不需要插件、WebRTC 對等連接或 SFU 基礎設施。
輸入
外部 MoQ 中繼站 → AMS
AMS 可從任何與 moq 兼容的中繼站拉取串流,並將它們視為常規的 AMS廣播,可透過 WebRTC、HLS 或 RTMP 進行錄製、轉碼或重新分發。
這個外掛附帶了一個內嵌的 moq-lite-relay (運行在端口 4443),所以第一次測試不需要額外的基礎設施。如果你已經有一個 moq-lite 兼容的 relay 在運行,無論是自托管還是像 Cloudflare 的 MoQ CDN 輪廓這樣的第三方服務,你可以將外掛指向那個。還包括了隨附的、即用型瀏覽器播放器和發布者頁面.

MoQ vs. WebRTC vs. HLS
功能 MoQ WebRTC HLS / DASH
起源 ~2022–present, IETF 草案 2011, W3C & IETF 标準 2009, RFC 8216+
延遲 次秒 (可設定) 柔性 ~0.2–0.5秒 超低 3–30 秒
架構 公/專發布 + CDN 中繼 SFU CDN / 起源
CDN 可儲存 是 否 是
瀏覽器支援 Chrome、Edge 有限支援 所有主要瀏覽器普遍支援 所有主要瀏覽器普遍支援
傳輸 QUIC / WebTransport UDP / DTLS-SRTP TCP / HTTP
moq-lite 與 Full IETF moq-transport:目前情況
值得精確說明「MoQ支援」在今天的含義,因為有兩個不同的層面需要理解.

moq-lite
今日即可部署
一個刻意簡化且向後相容的 IETF 草案子集。哲學:而不是等待數年等待最終標準,今日發布一些實際的東西並且隨著規範的演變保持相容。moq-lite 已經與 moq-transport CDN 例如 Cloudflare 的 MoQ 邊緣互操作.
這就是 AMS MoQ 插件基於的東西.
IETF moq-transport
完整規格 (進行中)
涵蓋完整會議協商、複雜的軌道命名空間、訂閱和宣告過濾、優先順序排序以及交付偏好。仍然是一份活躍的草稿,因此它仍然在持續變更。對於 moqtail.dev 的支持在我們的路線圖上,隨著它的成熟而進行。
把它想成早期的 HTTP:核心概念早在正式的 RFC 文件完成之前就已確立且可部署。moq-lite 對於實時媒體採取了同樣的方法.
運作方式:架構概覽
此外掛整合在 AMS 內的組合器層級。當廣播開始時,會將一個 MoQMuxer 附加到串流組合管線上:一個用於來源品質,以及一個用於每個適應式版本。編碼的畫面從編碼器直接流入組合器,組合器將其轉發到內嵌中繼器,以便透過 WebTransport 進行分散。

輸出 (AMS → 瀏覽器)
ams-moq-to-browser
輸入 (瀏覽器 → AMS)
WebBrowserToAMS
此架構將AMS置於中心。無論您是將視頻輸出到MoQ觀眾,還是從MoQ來源拉取視頻,流動都完全整合到AMS生態系統中。REST API、管理控制台、錄製以及所有其他AMS功能均正常適用.

內建瀏覽器播放器與發布者
此外掛附帶兩個即用型 HTML 頁面,基於 moq-lite TypeScript 網頁組件。

AMS MoQ Player
瀏覽器相容性注意事項
目前的MoQ播放器僅支援基於Chromium的瀏覽器(Chrome、Edge、Brave等)。Safari不支援WebTransport。Firefox有部分的WebTransport支援,但目前對MoQ播放不穩定。我們預期隨著瀏覽器廠商持續採納WebTransport規範,這將會改善。
播放器頁面(play.html)是基於網頁組件建構的,且除了捆綁的內容外,不需要額外的JavaScript。主要功能:

雙重渲染模式
自動在 WebCodecs (基於畫布,最低延遲) 和 MSE (視頻元素,更廣泛的兼容性) 之間選擇,或可以手動強制選擇.
中繼 URL 探測
自動嘗試多個中繼 URL 候選,並連接到第一個有響應的。當中繼位於不同端口或位於代理背後時很有用.
實時調試面板
即時 FPS、緩衝區大小、延遲事件、延遲時間、使用的編碼器,以及接收到的視頻字節。在整合和測試過程中無價。
AMS MoQ 出版商
發行者頁面 (publish.html) 是基於網路組件所建立,並允許瀏覽器直接發布至 MoQ 中繼站:

相機&螢幕截圖
單一按鈕即可從攝影機或螢幕分享.
音訊 & 影像控制
獨立切換音訊靜音與影像關閉.
中繼 URL 探測
支援每個候選者狀態指示的中繼 URL 探測.
支援的編碼格式
追蹤 支援的編碼格式
影片 H.264 (AVC) H.265 (HEVC)
音訊 AAC Opus
H.264 裝置使用附件 B SPS/PPS 提取來確保接收端正確初始化解碼器。此清單外的裝置(例如 VP8)尚未支援。預期隨著 MoQ 生态系統成熟,這將會擴展。

開始使用
需求:Ant Media Server 3.0.0 或更新版本,Linux x86_64,sudo 存取權。

下載 MoQPlugin-release.zip 上傳至您的伺服器,然後執行:

1. 解壓縮發布版本

unzip MoQPlugin-release.zip

2. 安裝插件並傳遞二進制文件

cd MoQ-Plugin
sudo chmod +x install-moq-plugin.sh
sudo ./install-moq-plugin.sh

3. 將 MoQ 播放器頁面複製到您的 AMS 應用程式

sudo mkdir -p /usr/local/antmedia/webapps/live/moq
sudo cp -r moq-ams-player-build/* /usr/local/antmedia/webapps/live/moq

4. 重新啟動 AMS

sudo service antmedia restart
安裝腳本會將 MoQPlugin.jar 拷貝到插件目錄並解壓縮中繼二進制文件。重新啟動後,play.html 和 publish.html 頁面將會可用。https://your-server:5443/live/moq/play.html.

伺服器啟動後,在您的瀏覽器中打開發布和播放頁面,這就是全部的操作!

MoQ 發布頁面
publish.html — 在 MoQ 上廣播
MoQ 玩家頁面
play.html — 具備亞秒級延遲的觀看
獨立的 MoQ 玩家頁面是暫時性的。未來的版本中,MoQ 播放和發布將直接集成到主要的 Ant Media Server 網頁播放器中.
在打開頁面之前,有幾件事需要檢查:
實際伺服器需要使用 HTTPS。MoQ 使用 WebTransport,而瀏覽器僅允許它在 HTTPS 上使用。如果你的伺服器位於實際的域名或 IP 位址上,它需要一個有效的 SSL 証書。Localhost 是瀏覽器唯一允許無 SSL 的例外。
打開 4443 埠。內嵌的 MoQ 中繼在 UDP/TCP 埠 4443 上監聽。如果你的伺服器位於防火牆後面,請確保該埠對於入站流量是開放的,否則瀏覽器將無法達到中繼。
透過 MoQ 播放串流
當串流在 AMS 上啟動後,觀眾可透過內建的 MoQ 播放器或任何 moq 兼容用戶端直接連接。每個品質層級都會以獨立的命名軌道提供:

來源品質: moq://ams-server-ip:4443/streamId/source
720p 版本: moq://ams-server-ip:4443/streamId/720p
當玩家打開時,您將看到一份可供串流的音軌列表。來源音軌是發布到 AMS 的原始品質。命名渲染如 720p 或 480p 是自適應比特率的版本,AMS 在串流過程中轉碼而成.

關於「發布」音軌
若列表中出現發布軌跡,串流是直接從瀏覽器發布者傳送至中繼站,完全未經過AMS。選擇它會直接從MoQ中繼站播放串流,跳過AMS編碼、轉碼和錄製。這是最直接的途徑,延遲最低,但這也表示沒有ABR渲染版本,沒有錄製,也沒有AMS的管線功能。
瀏覽器播放器透過 WebTransport 連接到中繼機器,並訂閱首選的音軌。中繼機器處理所有擴散,因此單一流可以支援任意數量的並發觀看者,而無需每個連接的開銷,這使得 WebRTC 在規模上具有挑戰性。

透過 MoQ 將流式傳輸發布到 AMS。
AMS 亦接受輸入的 MoQ 流。除了內建的瀏覽器發布者,任何 moq 兼容用戶端都可以直接發布到中繼器,AMS 將會把它作為一個常規廣播來接收。兩種方法來完成:

瀏覽器
內建發布者頁面
從插件中打開 publish.html,輸入您的中繼器地址,並從您的攝影機或螢幕開始發布。無需設定。
任何 MoQ 客戶
直接中繼發布
使用任何與 moq-lite 兼容的工具直接發布到中繼 URL:
moq://中繼IP:4443/moq/streamId/publish
一旦收到,此串流變為標準的 AMS廣播,準備進行錄製、轉碼,或透過 WebRTC、HLS 或 RTMP 重新分發。

設定
設定是選擇性的。此外掛使用下方顯示的預設值即可正常運作。若要覆蓋任何值,請前往 AMS 網頁面板中您的應用程式的設定 > 高級,並在 customSettings 下,使用 plugin.moq 鍵套嵌您的 MoQ 設定:

{
"customSettings": {
"plugin.moq": {
"useEmbeddedRelay": true,
"ingestEnabled": true,
"externalRelayUrl": "https://relay.example.com:9000/moq",
"ingestPollIntervalMs": 2000
}
}
}
設定預設描述
useEmbeddedRelay true 使用內嵌的 moq-relay 在 4443 端口。設置為 false 以使用外部 relay.
ingestEnabled true 通過宣布 polling 啟用 MoQ 進食。如果 AMS 僅發布不進行,設置為 false.
externalRelayUrl localhost:4443 外部 relay 的 URL。僅在 useEmbeddedRelay 設置為 false 時使用。
ingestPollIntervalMs 2000 多久 (以 ms 為單位) 檢查中繼器的 /announced 端點以獲取新的串流.
當 useEmbeddedRelay 為 true 時,中繼器 URL 會自動解析為 http://localhost:4443/moq,並忽略外部 URL 設置.

常見問題
MoQ 插件是否已經準備好用於生產環境?
這個外掛程式功能正常且持續維護。不過,MoQ 作為一個協議仍然在標準化中,所以您的生產準備取決於您對於演進規格的容忍度。如果您規劃進行嚴肅的整合,我們建議您從測試環境開始,並聯繫我們討論您的應用場景。

哪些瀏覽器支援 MoQ 播放?
MoQ 播放需要 WebTransport。Chrome 和 Edge 有穩定支援。Safari 完全沒有支援 WebTransport。Firefox 有部分 WebTransport 支援,但對 MoQ 播放不穩定。我們預期隨著 WebTransport 规範成熟,瀏覽器的支援範圍會改善。

我可以使用自己的外部 MoQ 中繼器,而不是內嵌的嗎?
是。在插件設定中將 useEmbeddedRelay 設為 false,並透過 externalRelayUrl 提供您的 relay URL。任何 moq 兼容的 relay 都可以,包括自架設部署或 Cloudflare 的 MoQ CDN 提供服務。

MoQ 會取代 Ant Media Server 中的 WebRTC 嗎?
不,它們扮演的是互補的角色。WebRTC 仍然是互動式雙向溝通的最佳選擇,例如視頻會議或超低延遲廣播(低於 200 毫秒)。MoQ 則針對一對多廣播場景,在這種情況下,你需要同時具備次秒級延遲和 CDN 等級的傳輸。這兩種協議都由 AMS 支持,並且可以在同一台伺服器上並行運行。如需詳細分析,請參閱我們的文章 WebRTC vs. MoQ — 兩種協議,一個完全為兩者打造的平台。

moqtail.dev 是什麼,以及 AMS 何时支援它?
moqtail.dev 代表 MoQ 生態系統的下一步發展,隨著 IETF 標準的成熟。我們正密切監控其發展。支援將會添加到 AMS MoQ 插件中,隨著該庫穩定下來,並且整合變得實際。

結論
AMS MoQ 插件是走向下一代直播基礎設施的早期但功能性的步驟。透過今天基於 moq-lite 的建構,Ant Media Server 提供開發者一種實際探索 MoQ 帶來的價值的途徑:亞秒級延遲、CDN規模的擴散,以及基於 WebTransport 和 WebCodecs 的現代瀏覽器堆疊。無需等待 IETF 結束規範。

我們將會持續發布更新,隨著 moq-lite 的演進以及 moqtail.dev 支援變得實際可以整合。如果你正在實驗 MoQ 插件或在其上建立某個東西,請在社群論壇上告訴我們,或直接聯繫我們。