Skip to content

MoQT Overview

Media over QUIC Transport (MoQT) is an IETF protocol for delivering media and data over QUIC connections. It’s designed for use cases like:

  • Live streaming (low-latency video/audio)
  • Real-time chat and messaging
  • IoT telemetry
  • Any publish/subscribe data pattern over QUIC

A track is a named stream of objects within a namespace. For example:

  • Namespace: ["chat", "room1"]
  • Track name: "messages"
  • Object — the smallest unit of data (a single message, a video frame, etc.)
  • Group — a collection of related objects (e.g., a GOP in video)
  • Subgroup — a subdivision within a group for priority/ordering

A client subscribes to a track to receive objects as they’re published. The subscription includes a filter that determines where to start.

A MoQT session runs over a single QUIC connection. The session begins with a setup exchange to negotiate capabilities and draft version.

  • QUIC encrypts everything — no passive capture without TLS key export
  • Browser DevTools show WebTransport but not MoQT-level semantics
  • Relay implementations vary widely in feature support and draft version coverage
  • The protocol is still evolving — drafts 07 through 17 have significant differences in message formats

moqtap provides MoQT-aware debugging across three platforms:

  • CLImoqtap peek probes relays directly (auto-detects transport and draft version, discovers namespaces, enumerates tracks, fetches data); moqtap intercept sits transparently between a client and relay, parsing every frame inline
  • Browser Extension — a DevTools panel that intercepts WebTransport connections in Chrome and Firefox, auto-detects MoQT, and decodes all control messages and data streams in real time
  • Desktop App — a cross-platform GUI for connecting to relays, subscribing, fetching, and inspecting sessions with full trace recording

All tools share the .moqtrace file format for recording and replaying sessions. Traces captured in one tool can be opened in another.