This specification describes a low-overhead media container (LOC) format for encoded and encrypted audio and video media data.
"Low-overhead" refers to minimal extra encapsulation as well as minimal application overhead when interfacing with WebCodecs [WebCodecs].
The container format description is specified for all audio and video codecs defined in the WebCodecs Codec Registry [WEBCODECS-CODEC-REGISTRY]. The audio and video payload bitstream is identical to the "internal data" inside an EncodedAudioChunk and EncodedVideoChunk, respectively, specified in the registry.
(Note: Do we need to support timed text tracks such as Web Video Text Tracks (WebVTT) ?)
In addition to the media payloads, critical metadata called properties are also specified for audio and video payloads.
A primary motivation is to align with media formats used in WebCodecs to minimize extra encapsulation and application overhead when interfacing with WebCodecs. Other container formats like CMAF or RTP would require more extensive application overhead in format conversions, as well as larger encapsultion overhead which may burden some use cases like low bitrate audio scenarios.
This specification can also be used by applications outside the context of WebCodecs or a web browser. While the media payloads are defined by referring to the "internal data" of an EncodedAudioChunk or EncodedVideoChunk in the WebCodecs Codec Registry, this "internal data" is the elementary bitstream format of codecs without any encapsulation. Referring to the WebCodecs Codec Registry avoids duplicating it in an identical IANA registry.
-
Section 2 defines the core media payload formats.
-
Section 2.3 defines the metadata, called properties, associated with audio and video payloads.
-
Section 3 defines the usage of end-to-end encrypted LOC payloads.
-
Section 4 provides examples with details for building audio and video applications using LOC over MOQ.