Organization: Eyevinn Technology Draft support: draft-14 and draft-16 (ALPN-based version negotiation) Demo: moqlivemock.demo.osaas.io
Repositories
moqtransport (v0.7.0)
- GitHub: Eyevinn/moqtransport
- Language: Go
- Description: Media over QUIC Transport library supporting draft-14 and draft-16
moqlivemock (v0.7.0)
- GitHub: Eyevinn/moqlivemock
- Language: Go
- Description: Live MoQ publisher/subscriber with CMSF media, DRM, and interop testing support
warp-player (v0.7.1)
- GitHub: Eyevinn/warp-player
- Language: JavaScript
- Description: Browser-based player for CMSF media over MoQ using MSE playback. Supports Widevine, PlayReady, FairPlay, and ClearKey.
Architecture
The stack covers the full media pipeline:
- moqtransport - Go library implementing moq-transport draft-14 and draft-16
- moqlivemock - Publisher (
mlmpub) and subscriber (mlmsub) test tools, plusmlmtestfor the interop-runner framework - warp-player - Browser-based player using moq-cmsf with MSE for playback
Catalog Handling
Supports both FETCH and SUBSCRIBE for retrieving the MSF catalog. Each namespace provides its own catalog describing available tracks.
Media Support
- Video: H.264, HEVC
- Audio: AAC, Opus, AC-3
- Subtitles: wvtt, stpp (dynamically generated with timestamps and group numbers)
- Sync: Wall-clock synchronized — group X starts at second X, video clock aligned with UTC modulo 10s, audio beeps on seconds
- Format: CMSF (CMAF chunks over MOQT)
Content Protection & Namespaces
Three content protection modes, each served under its own namespace:
| Namespace | Protection | Details |
|---|---|---|
cmsf/clear | None | Unencrypted CMSF |
cmsf/drm-{scheme} | Commercial DRM | Widevine, PlayReady, FairPlay via CPIX |
cmsf/eccp-{scheme} | ClearKey / ECCP | Explicit key delivery via HTTP |
All three modes run simultaneously, allowing subscribers to choose their preferred protection level by subscribing to the appropriate namespace.
CMSF ContentProtection
The CMSF ContentProtection signaling spec (moq-wg/cmsf PR #18, merged Apr 14) was proposed by Eyevinn based on the moqlivemock implementation. DRM support in moqlivemock and warp-player was implemented by Hugo Björs (Eyevinn). warp-player supports Widevine, PlayReady, FairPlay, and ClearKey/ECCP. It was the first running implementation, now joined by shaka-player (PR #9972, also merged Apr 14).
Demo
- Live demo: moqlivemock.demo.osaas.io
- shaka-player by Álvaro Velad Galván (Atème) works with moqlivemock including subtitle display and DRM
Interop
- shaka-player subscribing to moqlivemock publisher (including CMSF ContentProtection)
mlmtestclient available for the interop-runner framework- Draft-16 support opens interop with moq-rs, moxygen, libquicr, and other draft-16 implementations
Related
- moq-transport - Protocol spec
- moq-cmsf - CMAF format used by warp-player
- media-packaging - LOC vs CMAF approaches
- interop-status - Cross-implementation testing