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, plus mlmtest for 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:

NamespaceProtectionDetails
cmsf/clearNoneUnencrypted CMSF
cmsf/drm-{scheme}Commercial DRMWidevine, PlayReady, FairPlay via CPIX
cmsf/eccp-{scheme}ClearKey / ECCPExplicit 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

Interop

  • shaka-player subscribing to moqlivemock publisher (including CMSF ContentProtection)
  • mlmtest client available for the interop-runner framework
  • Draft-16 support opens interop with moq-rs, moxygen, libquicr, and other draft-16 implementations

Related