How MOQ supports switching between quality levels during streaming.
Overview
moq-msf defines support for adaptive bitrate switching between time-synchronized tracks. Different quality representations are published as separate tracks that share a common timeline.
Mechanism
- The catalog-format describes all available tracks and their quality parameters
- Tracks within a
renderGroupare time-aligned (though PR #142 clarified this doesn’t imply strict time alignment) - Subscribers can switch between tracks by changing their subscription
- The publish-subscribe model means switching is a client-side decision
Latency Modes
MSF defines three latency regimes that affect ABR behavior:
- Real-time (<500ms) - Minimal buffering, aggressive quality drops
- Interactive (500-2500ms) - Some buffer for smoothing
- Standard (>2500ms) - Traditional ABR with deep buffers
Zapping
PR #122 in the MSF repo adds initial text on “zapping” - quickly switching between different content streams (like changing TV channels). This is related to but distinct from ABR switching.
Related
- moq-msf - Streaming format with ABR support
- catalog-format - Describes available quality tracks
- joining-fetch - ABR implications when joining mid-stream
- media-packaging - Container format affects ABR granularity