<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-moq-loc-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="media-container">Low Overhead Media Container</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-moq-loc-01"/>
    <author fullname="Mo Zanaty">
      <organization>Cisco</organization>
      <address>
        <email>mzanaty@cisco.com</email>
      </address>
    </author>
    <author fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <author fullname="Peter Thatcher">
      <organization>Microsoft</organization>
      <address>
        <email>pthatcher@microsoft.com</email>
      </address>
    </author>
    <date/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>LOC</keyword>
    <keyword>MOQ</keyword>
    <keyword>MOQT</keyword>
    <keyword>QUIC</keyword>
    <keyword>media</keyword>
    <abstract>
      <?line 55?>

<t>This specification describes a Low Overhead Media Container (LOC) format for
encoded and encrypted audio and video media data to be used
primarily for interactive Media over QUIC Transport (MOQT).
It may be used in the WARP streaming specification, which defines a catalog format
for publishers to annouce and describe their LOC tracks and for
subscribers to consume them. Examples are also provided
for building media applications using LOC and MOQT.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://moq-wg.github.io/loc/draft-ietf-moq-loc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-moq-loc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Media Over QUIC Working Group mailing list (<eref target="mailto:moq@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/moq/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/moq/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/moq-wg/loc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 66?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This specification describes a low-overhead media container (LOC) format for
encoded and encrypted audio and video media data.</t>
      <t>"Low-overhead" refers to minimal extra encapsulation as well as minimal application overhead when interfacing with WebCodecs <xref target="WebCodecs"/>.</t>
      <t>The container format description is specified for all audio and video codecs defined in the
WebCodecs Codec Registry <xref target="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.</t>
      <t>(Note: Do we need to support timed text tracks such as Web Video Text Tracks (WebVTT) ?)</t>
      <t>In addition to the media payloads, critical metadata is also specified for audio and video payloads.
(Note: Align with MOQT terminology of either "metadata" or "header".)</t>
      <t>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.</t>
      <t>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.</t>
      <ul spacing="normal">
        <li>
          <t><xref target="payload"/> defines the core media payload formats.</t>
        </li>
        <li>
          <t><xref target="headers"/> defines the metadata associated with audio and video payloads.</t>
        </li>
        <li>
          <t><xref target="encryption"/> defines the usage of end-to-end encrypted LOC payloads.</t>
        </li>
        <li>
          <t><xref target="examples"/> provides examples with details for building audio and video applications
using LOC over MOQ.</t>
        </li>
      </ul>
      <section anchor="requirements-notation-and-conventions">
        <name>Requirements Notation and Conventions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>Track, Group, Subgroup, Object, and their corresponding identifiers (ID or alias)
are defined in <xref target="MoQTransport"/> and used here to refer to those aspects of the
MOQT Object Model.</t>
      </section>
    </section>
    <section anchor="payload">
      <name>Payload Format</name>
      <t>The WebCodecs Codec Registry defines the contents of an EncodedAudioChunk and
EncodedVideoChunk for the audio and video codec formats in the registry. The
"internal data" in these chunks is used directly in this specification as
the "LOC Payload" bitstream. This "internal data" is the elementary bitstream format
of each codec without any encapsulation.</t>
      <section anchor="video">
        <name>Video Payload Format</name>
        <t>For video formats with multiple bitstream formats in the WebCodecs Registry, such as H.264/AVC or H.265/HEVC, the LOC Payload can use either the "canonical" format ("avc" or "hevc") often used in storage containers like MP4 / ISO BMFF, or the "annexB" format used in some non-MP4 applications. These formats differ in how they carry initialization and configuration information called parameter sets as well as how parts of a video frame are delimited with length prefixes or start codes.</t>
        <section anchor="parameter-sets-in-payload">
          <name>Parameter Sets In Payload</name>
          <t>Parameter sets can be sent in the bitstream payload before key frames, similar to "annexB" formats. Newer "canonical" formats such as "avc3" and "hev1" codec strings also support parameter sets in the bitstream payload or outside it in "extradata" metadata headers.</t>
        </section>
        <section anchor="parameter-sets-in-headers">
          <name>Parameter Sets in Headers</name>
          <t>Parameter sets can be sent in headers before key frames, as described in the Config LOC Header Extension <xref target="config"/>, similar to the original "canonical" formats such as "avc1" and "hvc1" codec strings. The Config contents are the "extradata" bytes defined by the corresponding codec specification, which map to the WebCodecs VideoDecoderConfig description property in the EncodedVideoChunkMetadata.</t>
        </section>
        <section anchor="length-prefixes-in-payload">
          <name>Length Prefixes in Payload</name>
          <t>A 4-byte length prefix can be sent before each NAL Unit, similar to "canonical" ("avc" or "hevc") formats. A length value of 1 should be interpreted as a start code rather than a length. The length is in network byte order, i.e. big endian, and <bcp14>SHOULD</bcp14> be 4 bytes long to disambiguate from start code prefixes. A length prefix less than 4 bytes long, which is uncommon, <bcp14>MAY</bcp14> be specified in the Config <xref target="config"/>.</t>
        </section>
        <section anchor="start-code-prefixes-in-payload">
          <name>Start Code Prefixes in Payload</name>
          <t>A 4-byte start code can be sent before each NAL Unit, similar to "annexB" formats. The start code value is 1 in network byte order, i.e. big endian, and <bcp14>SHOULD</bcp14> be 4 bytes long to disambiguate from length prefixes. A 3-byte start code, which is uncommon, <bcp14>MAY</bcp14> be used if the track never uses length prefixes or any Config <xref target="config"/>.</t>
        </section>
      </section>
      <section anchor="moq-object-mapping">
        <name>MOQ Object Mapping</name>
        <t>An application object when transported as a <xref target="MoQTransport"/> object is composed of
a MOQ Object Header, with optional Extensions, and a Payload.
Media objects encoded using the container format defined in this
specification populate the MOQ Object Payload with the LOC Payload, and
the MOQ Object Header Extensions with the LOC Header Extensions, as shown below.</t>
        <t>The LOC Payload is the "internal data" of an EncodedAudioChunk or EncodedVideoChunk.</t>
        <t>The LOC Header Extensions carry optional metadata related to the Payload.</t>
        <artwork type="ascii-art"><![CDATA[
<-----------  MOQ Object  ------------>
+----------+--------------+-----------+
|   MOQ    |  MOQ Header  |    MOQ    |
|  Header  |  Extensions  |  Payload  |
+----------+--------------+-----------+
                  |             |
                  |             |
           +--------------+-----------+
           |  LOC Header  |    LOC    |
           |  Extensions  |  Payload  |
           +--------------+-----------+

LOC Header Extensions = some MOQ Object Header Extensions
LOC Payload = all MOQ Object Payload
LOC Payload = "internal data" of EncodedAudio/VideoChunk

]]></artwork>
      </section>
      <section anchor="headers">
        <name>LOC Header Extensions</name>
        <t>The LOC Header Extensions carry optional metadata for the corresponding LOC Payload.
The LOC Header Extensions are contained within the MOQ Object Header Extensions.
This metadata provides necessary information for
end subscribers, relays and other intermediaries
to perform their operations without accessing the media payload. For example,
media switches can use this metadata to perform their media switching decisions
without accessing the payload which may be encrypted end-to-end
(from original publisher to end subscribers).</t>
        <t>The following sections define specific metadata as LOC Header Extensions and
register them in the IANA registry for MOQ Object Header Extensions.</t>
        <t>Other specifications can define other metadata as LOC Header Extensions and
register them in the same registry. Each extension must specify the following
information in the IANA registry.</t>
        <ul spacing="normal">
          <li>
            <t>Name: Short name for the metadata (not sent on the wire)</t>
          </li>
          <li>
            <t>Description: Detailed description (not sent on the wire)</t>
          </li>
          <li>
            <t>ID: Identifier assigned by the registry (varint)</t>
          </li>
          <li>
            <t>Length: Length of metadata Value in bytes (varint if ID is odd, omitted if ID is even)</t>
          </li>
          <li>
            <t>Value: Value of metadata (varint if ID is even, Length bytes if ID is odd)</t>
          </li>
        </ul>
        <section anchor="common-header-data">
          <name>Common Header Data</name>
          <section anchor="capture-timestamp">
            <name>Capture Timestamp</name>
            <ul spacing="normal">
              <li>
                <t>Name: Capture Timestamp</t>
              </li>
              <li>
                <t>Description: Wall-clock time in microseconds since the Unix epoch
when the encoded media frame was captured, encoded as a varint.</t>
              </li>
              <li>
                <t>ID: 2 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-8 bytes)</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="video-header-data">
          <name>Video Header Data</name>
          <section anchor="config">
            <name>Video Config</name>
            <ul spacing="normal">
              <li>
                <t>Name: Video Config</t>
              </li>
              <li>
                <t>Description: Video codec configuration "extradata", as defined by the corresponding codec specification, which maps to the WebCodecs VideoDecoderConfig description property in the EncodedVideoChunkMetadata.</t>
              </li>
              <li>
                <t>ID: 13 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
          <section anchor="video-frame-marking">
            <name>Video Frame Marking</name>
            <ul spacing="normal">
              <li>
                <t>Name: Video Frame Marking</t>
              </li>
              <li>
                <t>Description: Flags for video frames which are independent, discardable, or
base layer sync points, as well as temporal and spatial layer
identification, as defined in <xref target="RFC9626"/>, encoded in the least
significant bits of a varint.</t>
              </li>
              <li>
                <t>ID: 4 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-4 bytes)</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="audio-header-data">
          <name>Audio Header Data</name>
          <section anchor="audio-level">
            <name>Audio Level</name>
            <ul spacing="normal">
              <li>
                <t>Name: Audio Level</t>
              </li>
              <li>
                <t>Description: The magnitude of the audio level of the corresponding audio frame
as well as a voice activity indicator as defined in section 3 of <xref target="RFC6464"/>,
encoded in the least significant 8 bits of a varint.</t>
              </li>
              <li>
                <t>ID: 6 (IANA, please assign from the MOQ Header Extensions Registry)</t>
              </li>
              <li>
                <t>Length: Varies (1-2 bytes)</t>
              </li>
              <li>
                <t>Value: Varies</t>
              </li>
            </ul>
          </section>
        </section>
      </section>
    </section>
    <section anchor="encryption">
      <name>Payload Encryption</name>
      <t>When end to end encryption is supported, the encoded payload is encrypted
with symmetric keys derived from key establishment mechanisms, such as <xref target="MOQ-MLS"/>,
and the payload itself is protected using mechanisms defined in <xref target="SecureObjects"/>.</t>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This section provides examples with details for building audio and video applications
using MOQ and LOC; more specifically, it provides information on:</t>
      <ul spacing="normal">
        <li>
          <t>Using a WARP catalog <xref target="MoQCatalog"/> to describe track information,</t>
        </li>
        <li>
          <t>Packaging media into LOC streaming format, and</t>
        </li>
        <li>
          <t>Mapping application media objects to the MOQT object model and transport.</t>
        </li>
      </ul>
      <t>The figure below shows the conceptual model for mapping media application data
to the MOQT object model and underlying QUIC transport.</t>
      <artwork type="ascii-art"><![CDATA[
+------------------------------+
|     Media Application        |
|    Audio, Video Frames       |
+---------------+--------------+
                |
                |
+---------------v--------------------+
|        MOQT Object Model           |
| Tracks, Groups, Subgroups, Objects |
+---------------+--------------------+
                |
                |
+---------------v--------------+
|             QUIC             |
|        Streams, Datagrams    |
+------------------------------+

]]></artwork>
      <section anchor="app-audio">
        <name>Application with one audio track</name>
        <t>An example is shown below for an Opus mono channel audio track at 48Khz.</t>
        <sourcecode type="psuedocode"><![CDATA[
codec: "opus"
bitrate: 24000
samplerate: 480000
channelConfig: "mono"
lang: "en"
]]></sourcecode>
        <t>When ready for publishing, each encoded audio chunk, say 10ms, represents a
MOQT Object. In this setup, there is one <tt>MOQT Object</tt>
per <tt>MOQT Group</tt>, where the <tt>GroupID</tt> in the object header is
increment by one for each encoded audio chunk and the <tt>ObjectID</tt>
is defaulted to value 0.</t>
        <t>These objects can be sent as QUIC streams or datagrams. When mapped to
QUIC datagrams, each object must fit entirely within a QUIC datagram, and
when mapped to QUIC Streams, each such unitary group is sent over
an individual unidirectional QUIC stream since there is just one <tt>SubGroup</tt> per
each <tt>MOQT Group</tt>.</t>
      </section>
      <section anchor="app-1-video">
        <name>Application with one single quality video track</name>
        <t>An example is shown below for an H.264 video track with 1280x720p resolution
and 30 fps frame rate at 1 Mbps bitrate.</t>
        <sourcecode type="psuedocode"><![CDATA[
codec: "avc3.42E01E"
bitrate: 1000000
framerate: 30
width: 1280
height: 720
]]></sourcecode>
        <t>When ready for publishing, each encoded video chunk is considered as input
to MOQT Object payload. If encrypted, the output of encryption will serve as
the object's payload. The <tt>GroupID</tt> is incremented by 1 at IDR Frame boundaries.
The <tt>ObjectID</tt> is increment by 1 for each encoded video frame, starting at 0
and resetting to 0 at the start of a new group. The first encoded video frame,
MOQT Object with <tt>ObjectID</tt> 0, shall be the Independent (IDR) frame and
the rest of the encoded video frames corresponds to dependent (delta) frames,
organized in the decode order.</t>
        <t>When mapping to QUIC for sending, one unidirectional QUIC stream is setup to
deliver all the encoded video chunks within a MOQT group.</t>
        <t>When decoding at the 'End Consumer', the objects from each of the QUIC
streams are fed in the GroupID then ObjectID order to the decoder for
the track.</t>
      </section>
      <section anchor="app-2-temp-video">
        <name>Application with single video track with temporal layers</name>
        <t>An example is shown below for an H.264 video track with 1280x720p resolution and
2 temporal layers at 30 fps and 60 fps frame rate.</t>
        <sourcecode type="psuedocode"><![CDATA[
codec: "avc3.42E01F"
bitrate: 1500000
framerate: 60
width: 1280
height: 720
]]></sourcecode>
        <t>When ready for publishing, each encoded video chunk is considered as input
to MOQT Object payload. If encrypted, the output of encryption will serve as
the object's payload. The <tt>GroupID</tt> is incremented by 1 at Independent (IDR)
frame  boundaries. Each MOQT group shall contain 2 SubGroups corresponding
to the 2 temporal layers as shown below:</t>
        <sourcecode type="psuedocode"><![CDATA[
Layer:0/30fps Subgroup: 0 ObjectID: even
Layer:1/60fps Subgroup: 1 ObjectID: odd
]]></sourcecode>
        <t>Within the MOQT group, <tt>ObjectID</tt> is increment by 1 for each encoded video
frame, starting at 0 and resetting to 0 at the start of a new group. The
first encoded video frame, MOQT Object with <tt>ObjectID</tt> 0, shall be the
Indepedent (IDR) frame and the rest of the encoded video frames corresponds to
dependent (delta) frames, organized in the decode order. When mapping to
QUIC for sending, one unidirectional QUIC stream is used per SubGroup,
thus resulting in 2 QUIC streams per MOQT group.</t>
        <t>When decoding at the 'End Consumer' for a given MOQT group, the objects
must be fed in the GroupID then ObjectID order. This implies that the consumer
media application needs to order objects across the SubGroup QUIC
streams.</t>
      </section>
      <section anchor="application-with-mutiple-dependent-video-tracks">
        <name>Application with mutiple dependent video tracks</name>
        <t>An example is shown below for an H.264 video track with 2 spatial qualities
at 360p and 720p each at 30 fps</t>
        <sourcecode type="psuedocode"><![CDATA[
Video Track 1
codec: "avc3.42E01E"
bitrate: 500000
framerate: 30
width: 640
height: 360

Video Track 2
codec: "svc1.56401F"
bitrate: 1000000
framerate: 30
width: 1280
height: 720

]]></sourcecode>
        <t>When ready for publishing, the mapping to the MOQT object model and
to underlying QUIC, follows the same procedures as described in
<xref target="app-1-video"/> for each video track.</t>
        <t>When decoding at the 'End Consumer' for a given MOQT group, the objects
must be fed in the GroupID then ObjectID order in the ascending quality
track order.</t>
        <t>For the example in the section, this would imply following
pattern when decoding group 5.</t>
        <sourcecode type="pseudocode"><![CDATA[
Track 1 Group 5 Object 0
Track 2 Group 5 Object 0
Track 1 Group 5 Object 1
Track 2 Group 5 Object 1
....
]]></sourcecode>
      </section>
      <section anchor="application-with-mutiple-dependent-video-tracks-with-dyadic-framerate-levels">
        <name>Application with mutiple dependent video tracks with dyadic framerate levels.</name>
        <t>An example is shown below for an H.264 video track with 2 spatial qualities
at 360p and 720p, however, the framerate between tracks vary dyadically.</t>
        <sourcecode type="pseudocode"><![CDATA[
Video Track 1
codec: "avc3.42E01E"
bitrate: 500000
framerate: 30
width: 640
height: 360

Video Track 2
codec: "svc1.56E01F"
bitrate: 1000000
framerate: 60
width: 1280
height: 720

]]></sourcecode>
        <t>When ready for publishing, the mapping to the MOQT object model and
to underlying QUIC, follows the same procedures as described in
<xref target="app-1-video"/> for each video track.</t>
        <t>When decoding at the 'End Consumer' for a given MOQT group, the objects
from across the tracks must be fed in the timestamp order to the decoder,
if no frame reordering is present in the encoding.</t>
        <t>If the encoding uses frame reordering, or if timestamp cannot be obtained, the
object to choose next shall follow the below formula.</t>
        <sourcecode type="pseudocode"><![CDATA[
Object Decode Order = ObjectID * multiplier + offset

multiplier = 2^(maxlayer-max(0,layer-1))
offset = 2^(maxlayer-layer) MOD multiplier

]]></sourcecode>
      </section>
      <section anchor="app-2-video">
        <name>Application with multiple simulcast qualities video tracks</name>
        <t>An example is shown below for an H.264 video track with 2 simulcast
spatial qualities at 360p and 720p each at 30 fps.</t>
        <sourcecode type="psuedocode"><![CDATA[
Video Track 1
codec: "avc3.42E01E"
bitrate: 500000
framerate: 30
width: 640
height: 360

Video Track 2
codec: "avc3.42E01F"
bitrate: 1000000
framerate: 30
width: 1280
height: 720

]]></sourcecode>
        <t>When ready for publishing, the mapping to the MOQT object model and
to underlying QUIC, follows the same procedures as described in
<xref target="app-1-video"/> for each video track.</t>
        <t>When decoding at the 'End Consumer', the objects from the QUIC stream
are fed in the GroupID then ObjectID order to the decoders setup for the
corresponding video tracks.</t>
      </section>
    </section>
    <section anchor="security-and-privacy-considerations">
      <name>Security and Privacy Considerations</name>
      <t>The metadata in LOC Header Extensions is visible to relays, since the
MOQ Object Header Extensions are often not encrypted end-to-end
(from original publisher to end subscribers) in common schemes.
In some cases, this may be an intentional design intent for proper relay
operation. In other cases, this may be unintentional or undesirable leaking
of the metadata to relays. Each metadata that is defined should consider
the security and privacy aspects of granting relays visibility to the metadata.
End-to-end encyption schemes should support end-to-end encryption of sensitive
metadata.</t>
      <t>The metadata defined and registered in this specification
(Capture Timestamp, Video Frame Marking, and Audio Level) may be sensitive
metadata that should be encrypted end-to-end. They are used by media switches,
which are not merely relays, and likely have access to some media keys.
This may require end-to-end encryption schemes with multiple different
security key contexts for payload versus metadata.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>The IANA registry for MOQ Object Header Extensions is populated with
the entries specified in section <xref target="headers"/>, referencing this specification.</t>
      <t>This document creates a new entry in the "MoQ Streaming Format" Registry (see <xref target="MoQTransport"/> Sect 8). The type value is 0x002, the name is "LOC Streaming Format" and the RFC is XXX.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="MoQTransport">
          <front>
            <title>Media over QUIC Transport</title>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <author fullname="Alan Frindell" initials="A." surname="Frindell">
              <organization>Meta</organization>
            </author>
            <date day="23" month="June" year="2025"/>
            <abstract>
              <t>   This document defines the core behavior for Media over QUIC Transport
   (MOQT), a media transport protocol designed to operate over QUIC and
   WebTransport, which have similar functionality.  MOQT allows a
   producer of media to publish data and have it consumed via
   subscription by a multiplicity of endpoints.  It supports
   intermediate content distribution networks and is designed for high
   scale and low latency distribution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-transport-12"/>
        </reference>
        <reference anchor="WebCodecs" target="https://www.w3.org/TR/webcodecs/">
          <front>
            <title>WebCodecs</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
        <reference anchor="WEBCODECS-CODEC-REGISTRY" target="https://www.w3.org/TR/webcodecs-codec-registry/">
          <front>
            <title>WebCodecs Codec Registry</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9626">
          <front>
            <title>Video Frame Marking RTP Header Extension</title>
            <author fullname="M. Zanaty" initials="M." surname="Zanaty"/>
            <author fullname="E. Berger" initials="E." surname="Berger"/>
            <author fullname="S. Nandakumar" initials="S." surname="Nandakumar"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>This document describes a Video Frame Marking RTP header extension used to convey information about video frames that is critical for error recovery and packet forwarding in RTP middleboxes or network nodes. It is most useful when media is encrypted and essential when the middlebox or node has no access to the media decryption keys. It is also useful for codec-agnostic processing of encrypted or unencrypted media, while it also supports extensions for codec-specific information.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9626"/>
          <seriesInfo name="DOI" value="10.17487/RFC9626"/>
        </reference>
        <reference anchor="RFC6464">
          <front>
            <title>A Real-time Transport Protocol (RTP) Header Extension for Client-to-Mixer Audio Level Indication</title>
            <author fullname="J. Lennox" initials="J." role="editor" surname="Lennox"/>
            <author fullname="E. Ivov" initials="E." surname="Ivov"/>
            <author fullname="E. Marocco" initials="E." surname="Marocco"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines a mechanism by which packets of Real-time Transport Protocol (RTP) audio streams can indicate, in an RTP header extension, the audio level of the audio sample carried in the RTP packet. In large conferences, this can reduce the load on an audio mixer or other middlebox that wants to forward only a few of the loudest audio streams, without requiring it to decode and measure every stream that is received. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6464"/>
          <seriesInfo name="DOI" value="10.17487/RFC6464"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="MoQCatalog">
          <front>
            <title>WARP Streaming Format</title>
            <author fullname="Will Law" initials="W." surname="Law">
              <organization>Akamai</organization>
            </author>
            <author fullname="Luke Curley" initials="L." surname="Curley">
              <organization>Twitch</organization>
            </author>
            <author fullname="Victor Vasiliev" initials="V." surname="Vasiliev">
              <organization>Google</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Kirill Pugin" initials="K." surname="Pugin">
              <organization>Meta</organization>
            </author>
            <date day="16" month="March" year="2025"/>
            <abstract>
              <t>   This document specifies the WARP Streaming Format, designed to
   operate on Media Over QUIC Transport.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-warp-00"/>
        </reference>
        <reference anchor="SecureObjects">
          <front>
            <title>End-to-End Secure Objects for Media over QUIC Transport</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document describes an end-to-end authenticated encryption scheme
   for application objects intended to be delivered over Media over QUIC
   Transport (MOQT).  We reuse the SFrame scheme for authenticated
   encryption of media objects, while suppressing data that would be
   redundant between SFrame and MOQT, for an efficient on-the-wire
   representation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-secure-objects-02"/>
        </reference>
        <reference anchor="MOQ-MLS">
          <front>
            <title>End-to-end Security for Media over QUIC</title>
            <author fullname="Cullen Fluffy Jennings" initials="C. F." surname="Jennings">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="30" month="June" year="2025"/>
            <abstract>
              <t>   The Media over QUIC system allows relays to assist in the delivery of
   real-time media.  While these relays are trusted to facilitate media
   delivery, they are not trusted to access the media content.  The
   document describes an end-to-end security system that prevents relays
   from accessing media content.  MLS is used to establish keys that are
   available only to legitimate participants in a session, which are
   then used to protect media data using SFrame.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jennings-moq-e2ee-mls-03"/>
        </reference>
      </references>
    </references>
    <?line 547?>

<section anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Cullen Jennings for suggestions and review.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AudujV4Nxf8CGr/TYHJNAAA=

-->

</rfc>
