The MOQ Catalog Format: Describing Media for the Modern Web
An in-depth look at draft-ietf-moq-catalogformat, the standard way to describe available media tracks in a MOQ session.
Why Catalogs Matter
In any media delivery system, subscribers need a way to discover what content is available and how to consume it. In HLS, this role is played by the M3U8 playlist. In DASH, it's the MPD manifest. In MOQ, it's the catalog.
What the Catalog Contains
The MOQ catalog format (draft-ietf-moq-catalogformat) is a JSON document that describes:
Tracks
Each track represents a named stream of media objects:
{
"namespace": "live/stream1",
"name": "video-hd",
"packaging": "loc",
"renderGroup": 1,
"selectionParams": {
"codec": "avc1.640028",
"width": 1920,
"height": 1080,
"framerate": 30,
"bitrate": 4500000
}
}
Track Relationships
Tracks can be grouped for:
- Render groups: Tracks that should be rendered together (e.g., audio + video)
- Alternate groups: Tracks that are alternatives (e.g., different quality levels)
- Language: Multi-language audio tracks
Extensibility
The format includes an extension mechanism for application-specific metadata. This allows platforms to include custom data without modifying the core specification.
How Catalogs Are Delivered
Catalogs themselves are delivered as MOQ tracks. A publisher announces a catalog track, and subscribers can subscribe to it to receive:
- The initial catalog (current state of available tracks)
- Updates when tracks are added or removed
- Changes to track properties
This streaming approach means subscribers always have an up-to-date view of available content.
Catalog vs. Manifest
| Feature | HLS M3U8 | DASH MPD | MOQ Catalog |
|---|---|---|---|
| Format | Custom text | XML | JSON |
| Delivery | HTTP polling | HTTP polling | MOQ subscription |
| Updates | Poll for changes | Poll for changes | Push-based |
| Latency | Polling interval | Polling interval | Immediate |
| Track Discovery | Sequential | Full manifest | Incremental |
The push-based delivery model is a significant improvement over polling. Subscribers learn about new tracks or quality changes immediately, without waiting for the next manifest refresh.
Implementation Considerations
For implementers, the catalog format is relatively straightforward to work with:
- JSON parsing is well-supported in every language
- The schema is designed to be forward-compatible
- Required fields are minimal; most properties are optional
- The streaming delivery model uses standard MOQ subscription
The catalog format is one of the more mature parts of the MOQ specification suite, reflecting the working group's consensus that getting track discovery right is essential for adoption.