You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This specification describes a Low Overhead Media Container (LOC) format for
59
58
encoded and encrypted audio and video media data to be used
60
59
primarily for interactive Media over QUIC Transport (MOQT).
61
-
It further defines the
62
-
LOC Streaming Format for the MOQ Common Catalog format
60
+
It may be used in the WARP streaming specification, which defines a catalog format
63
61
for publishers to annouce and describe their LOC tracks and for
64
62
subscribers to consume them. Examples are also provided
65
63
for building media applications using LOC and MOQT.
@@ -69,8 +67,8 @@ for building media applications using LOC and MOQT.
69
67
70
68
# Introduction
71
69
72
-
This specification describes a low-overhead media container format for
73
-
encoded and encrypted audio and video media data, as well as a MOQ Common Catalog streaming format called LOC to describe such tracks.
70
+
This specification describes a low-overhead media container (LOC) format for
71
+
encoded and encrypted audio and video media data.
74
72
75
73
"Low-overhead"refers to minimal extra encapsulation as well as minimal application overhead when interfacing with WebCodecs {{WebCodecs}}.
76
74
@@ -100,8 +98,10 @@ Codec Registry avoids duplicating it in an identical IANA registry.
100
98
101
99
* {{headers}} defines the metadata associated with audio and video payloads.
102
100
103
-
* {{catalog}} describes the LOC Streaming Format bindings to the MoQ Common Catalog format including examples.
101
+
* {{encryption}} defines the usage of end-to-end encrypted LOC payloads.
104
102
103
+
* {{examples}} provides examples with details for building audio and video applications
104
+
using LOC over MOQ.
105
105
106
106
## Requirements Notation and Conventions
107
107
@@ -224,7 +224,7 @@ when the encoded media frame was captured, encoded as a varint.
224
224
* Name: Video Frame Marking
225
225
* Description: Flags for video frames which are independent, discardable, or
226
226
base layer sync points, as well as temporal and spatial layer
227
-
identification, as defined in {{Framemarking}}, encoded in the least
227
+
identification, as defined in {{!RFC9626}}, encoded in the least
228
228
significant bits of a varint.
229
229
* ID: 4 (IANA, please assign from the MOQ Header Extensions Registry)
230
230
* Length: Varies (1-4 bytes)
@@ -243,98 +243,20 @@ encoded in the least significant 8 bits of a varint.
243
243
* Value: Varies
244
244
245
245
246
-
# Catalog {#catalog}
247
246
248
-
A catalog track provides information about tracks from a given publisher. A catalog is used by subscribers for consuming tracks and by publishers
249
-
to advertise and describe the tracks. The content of a catalog is opaque to the relays and may be end to end encrypted. A catalog describes the details of tracks such as Track IDs and corresponding media configuration details, for example, audio/video codec details.
250
-
251
-
The LOC Streaming Format uses the MoQ Common Catalog Format {{MoQCatalog}} to describe the content being produced by a publisher.
252
-
253
-
Per Sect 5.1 of {{MoQCatalog}}, this document registers an entry in the "MoQ Streaming Format Type" table, with the type value 2, the name "LOC Streaming Format", and the RFC XXX.
254
-
255
-
Every LOC catalog track MUST declare a streaming format type (See Sect 3.2.1 of {{MoQCatalog}}) value of 2.
256
-
257
-
Every LOC catalog track MUST declare a streaming format version (See Sect 3.2.1 of {{MoQCatalog}}) value of 1, which is the version described in this document.
258
-
259
-
Every LOC catalog track MUST declare a packaging type (See Sect 3.2.9 of {{MoQCatalog}}) of "loc".
260
-
261
-
The catalog track MUST have a track name of "catalog". A catalog object MAY be independent of other catalog objects or it MAY represent a delta update of a prior catalog object. The first catalog object published within a new group MUST be independent. A catalog object SHOULD only be published only when the availability of tracks changes.
262
-
263
-
Each catalog update MUST be mapped to a discreet moq-transport object.
264
-
265
-
266
-
## Catalog Fields
267
-
268
-
The MOQ Common Catalog defines the required base fields and optional extensions.
269
-
270
-
### Optional Extensions for Video {#video-ext}
271
-
272
-
The LOC Streaming Format allows the following optional extensions for video media.
273
-
274
-
* temporalId: Identifies the temporal layer/sub-layer encoded, starting with 0 for the base layer, and increasing with higher temporal fidelity.
275
-
276
-
* spatialId: Identifies the spatial and quality layer encoded, starting with 0 for the base layer, and increasing with higher fidelity.
277
-
278
-
* depends: Identifies track dependencies for a given track, usually for video media with scalable layers in separate tracks.
279
-
280
-
* renderGroup: Identifies a group of time-aligned tracks which should be rendered simultaneously.
281
-
282
-
* selectionParams: Selection parameters for media quality, fidelity, etc.; see next section.
283
-
284
-
### Selection Parameters for Video {#profile}
285
-
286
-
Each video track can have the following associated Selection Parameters.
287
-
288
-
* codec: Codec information (including profile, level, tier, etc.), as defined by the codec registrations listed in {{WEBCODECS-CODEC-REGISTRY}}.
289
-
290
-
* framerate: As defined in section 7.8 of {{WEBCODECS-CODEC-REGISTRY}}.
291
-
292
-
* bitrate: As defined in section 7.7 and 7.8 of {{WEBCODECS-CODEC-REGISTRY}}.
293
-
294
-
* width, height: As defined in section 7.8 of {{WEBCODECS-CODEC-REGISTRY}}.
295
-
296
-
* displayWidth, displayheight: As defined in section 7.7 of {{WEBCODECS-CODEC-REGISTRY}}.
297
-
298
-
### Optional Extensions for Audio
299
-
300
-
The LOC Streaming Format allows the following optional extensions for audio media.
301
-
302
-
* renderGroup: Identifies a group of time-aligned tracks which should be rendered simultaneously.
303
-
304
-
* selectionParams: Selection parameters for media quality, fidelity, etc.; see next section.
305
-
306
-
### Selection Parameters for Audio {#audioprofile}
307
-
308
-
Each audio track can have the following associated Selection Parameters.
309
-
310
-
* codec: Codec information as defined by the codec registrations listed in {{WEBCODECS-CODEC-REGISTRY}}.
311
-
312
-
* bitrate: As defined in section 7.7 and 7.8 of {{WEBCODECS-CODEC-REGISTRY}}.
313
-
314
-
* samplerate: As defined in section 7.7 of {{WEBCODECS-CODEC-REGISTRY}}.
315
-
316
-
* chanelConfig: As defined in section 7.7 of {{WEBCODECS-CODEC-REGISTRY}}.
317
-
318
-
* lang: The primary language of the track, using standard tags from {{!RFC5646}}.
319
-
320
-
321
-
## Catalog Examples
322
-
323
-
See section 3.4 of the MOQ Common Catalog {{MoQCatalog}}.
324
-
325
-
326
-
# Payload Encryption
247
+
# Payload Encryption {#encryption}
327
248
328
249
When end to end encryption is supported, the encoded payload is encrypted
329
-
with symmetric keys derived from key establishment mechanisms, such as {{MOQ-MLS}}, and the payload itself is protected using mechanisms defined in {{SecureObjects}}.
250
+
with symmetric keys derived from key establishment mechanisms, such as {{MOQ-MLS}},
251
+
and the payload itself is protected using mechanisms defined in {{SecureObjects}}.
330
252
331
253
332
-
# Examples
254
+
# Examples {#examples}
333
255
334
256
This section provides examples with details for building audio and video applications
335
257
using MOQ and LOC; more specifically, it provides information on:
336
258
337
-
- Using a catalog to describe track information,
259
+
- Using a WARP catalog {{MoQCatalog}} to describe track information,
338
260
- Packaging media into LOC streaming format, and
339
261
- Mapping application media objects to the MOQT object model and transport.
0 commit comments