世界を動かす技術を、日本語で。

初のQUICを利用したメディアCDN: Cloudflare

2025年8月23日原文(moq.dev)

概要

Cloudflareが Media over QUIC (MoQ) CDN を発表し、世界規模の anycastネットワーク で技術プレビューを公開。 MoQは WebRTC/HLS/DASH/RTMP/SRT の置き換えを目指す新標準。 hang.liveなどの Webデモやライブラリ で手軽に配信・視聴が可能。 現時点では 機能制限やバグ があるが、今後の発展が期待。 MoQの実運用を通じて 標準化プロセスの前進 を促進。

CloudflareがMedia over QUIC CDNを発表

  • CloudflareMedia over QUIC (MoQ) CDN を正式発表
  • 世界規模の anycastネットワーク 上で試験運用開始
  • MoQは ライブメディア配信 の新標準
  • WebRTC/HLS/DASH/RTMP/SRT の後継を目指すプロトコル
  • Cloudflareが 初のCDN提供者 として先陣を切る

MoQとは何か

  • MoQ: ライブメディア配信向けの新しい標準プロトコル
  • 低遅延・高効率 な配信を実現
  • 既存の WebRTCやHLS/DASH/RTMP/SRT を置き換える可能性
  • IETF で標準化進行中、まだドラフト段階
  • 実世界での運用を通じて 仕様改善 を目指す動き

今すぐ試せること

  • Cloudflareの公開リレーエンドポイント (relay.cloudflare.mediaoverquic.com)で無料テスト可能
  • @kixelated/hang ライブラリや各種クライアントで接続可能
    • Mike’s fork
    • Lorenzo’s imquic
    • Meta’s moxygen
  • Webデモ で配信・視聴が簡単
  • Web Component API または Javascript API で柔軟な開発
  • Rustライブラリ も用意、ffmpegやgstreamer連携も可能

実装例

  • Web配信デモ: <hang-publish>要素でブラウザから直接配信
  • Web視聴デモ: <hang-watch>要素でライブ視聴
  • AI字幕機能: silero-vad + whisper + transformers.js + onnxruntime-web + WebGPUでブラウザ生成
  • Javascript API: 個別フレーム取得や高度な制御に対応
  • Rust API: MP4インポートやgstreamer連携で複雑な用途もカバー

現時点の制限事項

  • 技術プレビュー のため仕様・APIは変更可能性あり
  • 認証機能なし :ユニークで推測困難な配信名を必須
  • ANNOUNCEサポートなし :配信開始/終了検知は未対応
  • Safari未対応 :今後サポート予定
  • 最適化未実施 :ユーザー体験は今後改善
  • 古いドラフト・限定的な機能 :バグの可能性高い
  • 自己ホスト可能 :独自運用やプライベートネットワーク導入も可能

今後の展望とコミュニティ

  • WebRTC/HLS/RTMP再実装 を目指す壮大な挑戦
  • 標準化プロセス の加速を期待
  • Discordコミュニティ に900人以上参加
  • Google/Akamai/Fastly など他社への参加呼びかけ
  • 実運用データ を元にユーザーニーズを反映したプロトコル設計

開発者向けサンプルコード

  • @kixelated/hang ライブラリでの配信・視聴例
    • Broadcastの開始・停止制御
    • 音声/映像トラック情報の取得
    • CanvasやAudioEmitter/VideoRendererでの描画
    • フレーム単位の独自処理も可能
  • 未公開API での物体検出やMoQトラックへの結果配信
  • Typescript対応 :型安全な開発環境

まとめ

  • MoQ CDN の登場はライブ配信業界の大きな転換点
  • 標準化前の実運用 が今後の仕様策定に貢献
  • 開発者・事業者 は今からMoQを試してノウハウ蓄積を推奨
  • Javascriptは嫌い でも、MoQの未来には期待

Hackerたちの意見

こんにちは!CloudflareのMoQ開発者です。質問があれば喜んで答えます!賞をありがとう、kixelated。xD

こんにちは、getstream.ioでWebRTCストリーミングの仕事をしています。WebRTCは設定が面倒なんですよね。でも、接続が完了すると低遅延を提供してくれます。接続設定が終わった後のMoQの比較についてどう思いますか?何か利点や問題点はありますか?

こんにちは!いくつか質問があります :) QUICが実際にブラウザで使えるようになるのはどれくらい近いですか?(つまり、ブラウザとインフラの両方がサポートしていて、"ただ動く"状態)QUICはNATの問題をどう回避しますか?WebRTCはフルコーンNATを通過するためにSTUN/TURNが必要ですが、特に後者は運用に多くのインフラが必要なので問題です。

ヘッド・オブ・ラインブロッキングがない:TCPのように、1つのパケットが失われるとその後ろのすべてがブロックされるのとは違って、QUICのストリームは独立しています。1つのストリーム(例えば音声トラック)でパケットが失われても、別のストリーム(例えばメインのビデオトラック)はブロックされません。この点だけでも、RTMPの悩みの種だったスタッタリングを排除します。これらの技術にあまり詳しくないので見逃しているかもしれませんが、音声トラックでパケットが失われた場合、ビデオトラックがブロックされずに再生を続けると、どうやって音声とビデオの同期が取れるのですか?

リレーの負荷分散は範囲外なの?書いてある内容には触れられてない気がするけど、見落としたかな。

こんにちは、質問があるんだけど。あなたのチームは、TCPとQUICの良好なスループットに関して具体的な計画を持ってる?リンク先の論文では、HTTP/2(TCP)からHTTP/3(QUIC)に移行することで、最大9.8%のビデオビットレートの削減が見られるって言ってるよね。もちろん、MoQは少し違うスタックに基づいているから、結果がそのまま当てはまるわけじゃないけど、問題は似てると思う。実はこの話、すごく興味深いんだ。最近、修士論文の一環でMsQuicのAF_XDPデータパスを調査してたから。結局、GSO/GROがより良い選択肢で、QUICはもっとハードウェアオフロードが必要だって結論に至ったよ :p

あなたの最初のアプリ、面白いと思いました。Show HNに提出してみてはどうですか?私は以前、ライブビデオプラットフォームで働いていました。MoQが再び取り組む価値があるほど面白いと感じています。

そうですね、もうすぐやりますが、他のことを直す時間にも使えるかもしれません。

「主要なブラウザがサポートしている限り、"裏側"では良いと思います(caniuseでは見つけられないのですが)」。それに、Microsoft Edge WebView2のようなWebViewエンジンがサポートすれば、開発者はすぐに使えるようになると思います(ラッピングして)。でも、逆に考えると、OBSやYouTubeが実際に役立つようにサポートを始める必要があると思いますが、どうでしょう?

そうですね…MoQはWebRTCのようなオールインワンの「ブラックボックス」から少し離れることを示しています。ブラウザの視点から見ると、重要なのはWebTransport APIです。MoQTをWebTransport APIと組み合わせて使うことで、例えばWebCodecsを使った動画プレイヤーのレンダリングの選択肢が増えます。でも、もう少し遅延を許容できるなら、再生のためにMSEのようなAPIを使ってDRMも利用できるようになります。OBSから配信できるのは、Cloudflareに入る前に取り組んでいたことですが、「ストリーミングフォーマット」層での作業に大きく依存します。そこにはメディアに関する詳細が詰まっています。その層はまだ進化中で、WARPが今のところリーディングスペックです。これがもっと固まってくると、OBSなどに組み込む意味が出てくるでしょう。今日の時点でも、Norsk(https://norsk.video/)を使って、WARPドラフトの初期バージョンに似た基本的なfMP4形式で動画を公開できます。YouTubeに関しては、GoogleにはMoQTに非常に積極的に貢献している人たちがいますが、彼らがYouTubeのような製品にいつ、どのように展開する予定なのかは正確にはわかりません。

https://caniuse.com/webtransport https://caniuse.com/webcodecs 技術的にはWebCodecsは必須じゃないけど、MSEを使って描画することもできる。ただ、その場合は手間がかかって遅延も大きくなる。Safariをサポートするために、WebSocketのフォールバックとWASMでのOPUSエンコーダーに取り組んでる。

関連ありそうなので、CloudflareがホストしているHTTP/3を使ったサイトに訪れるFirefoxユーザー向けの情報です: https://bugzilla.mozilla.org/show_bug.cgi?id=1979683

Hacker Newsで議論の続きを見る