Draft: draft-cenzano-moq-media-interop-03 Status: Active Internet-Draft (individual submission, not WG-adopted) Authors: Jorge Cenzano-Ferret (Meta), alan-frindell (Meta) Published: 2025-10-20 Expires: 2026-04-23 (11 days from now — track for renewal) Datatracker: draft-cenzano-moq-media-interop HTML: afrind.github.io Repository: github.com/afrind/draft-cenzano-media-interop

Overview

Specifies a concrete media wire format for sending video and audio over LOC, targeting both live-streaming and video-conferencing use cases. Defines how to map H.264 video, Opus audio, AAC-LC audio, and UTF-8 text into MOQT objects using extension headers.

A key feature is support for updating encoding parameters mid-stream (frame rate, resolution, codec) without interrupting transmission.

Track Naming

  • Publishers choose a namespace and announce it via MOQT
  • Media tracks follow naming convention videoX and audioX (X = integer starting at 0)
  • Multiple tracks in the same namespace share synchronized timestamps

Mapping to MOQT Object Model

  • Video: New groups begin at each IDR (keyframe); object 0 is always an IDR frame
  • Audio: New groups begin with each audio object
  • Both use single subgroups with standardized formats

Timestamps

Two-component representation to avoid rounding errors:

  • Timestamp numerator (PTS, DTS, duration)
  • Timebase for conversion
  • Formula: timestamp(seconds) = numerator ÷ timebase

Extension Headers

Uses MOQT extension headers for media metadata:

Type IDNameDescription
0x0AMedia TypeMandatory in all objects — identifies payload type
0x15Video H.264 AVCC MetadataSequence ID, PTS, DTS, timebase, duration, wallclock
0x0DVideo H.264 AVCC ExtradataAVCDecoderConfigurationRecord (at group start / param change)
0x0FAudio Opus Bitstream DataSequence ID, PTS, timebase, sample freq, channels, duration, wallclock
0x11UTF-8 TextSequence ID only
0x13Audio AAC-LC MPEG4Same fields as Opus header

Supported Media Types

ValueTypePayload Format
0x0Video H.264 in AVCCAVC1 bitstream (ISO/IEC 14496-15:2019 §5.3), 4-byte size fields
0x1Audio OpusOpus packets (RFC 6716 §3)
0x2UTF-8 TextUTF-8 (RFC 3629)
0x3Audio AAC-LC in MPEG4raw_data_block() (ISO/IEC 14496-3:2009 §4.4.2.1)

Relationship to Other Drafts

  • Builds on moq-loc for container format
  • Uses moq-transport extension headers for metadata
  • Complements moq-msf — MSF defines the streaming format framework; this draft defines a concrete media-level wire format on top of LOC
  • Alternative media packaging approach to moq-cmsf (CMAF-based)

Open Items (TODOs in draft)

  • Datagram forwarding preference and audio frame sizing
  • Negative timestamp handling for initial priming
  • Security considerations (currently empty)
  • Links to LOC specification documentation

Revision History

VersionNotes
03Current (2025-10-20)
02
01
00Initial

Expiration Watch

Expires 2026-04-23. If not renewed by that date, the draft lapses. This is relevant because the draft documents the wire format used by Meta’s moxygen relay and is referenced by implementations doing LOC-based media interop. Check the datatracker page for renewal status.

Related