<?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.19 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cenzano-moq-media-interop-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="moq-mi">MoQ Media Interop</title>
    <seriesInfo name="Internet-Draft" value="draft-cenzano-moq-media-interop-00"/>
    <author fullname="Jordi Cenzano-Ferret">
      <organization>Meta</organization>
      <address>
        <email>jcenzano@meta.com</email>
      </address>
    </author>
    <author fullname="Alan Frindell">
      <organization>Meta</organization>
      <address>
        <email>afrind@meta.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="21"/>
    <area>Web and Internet Transport</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>Media over QUIC</keyword>
    <abstract>
      <?line 48?>

<t>This protocol can be used to send and receive video and audio over Media over
QUIC Transport <xref target="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://afrind.github.io/draft-cenzano-media-interop/draft-cenzano-moq-media-interop.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cenzano-moq-media-interop/"/>.
      </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/afrind/draft-cenzano-media-interop"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This protocol specifies a simple mechanism for sending media (video and audio)
over MOQT for both live-streaming and VC use cases.  The protocol is flexible in
order to support this range of use cases.</t>
      <t>Media parameters can be updated in the middle of a the track (ex: frame rate,
resolution, codec, etc)</t>
      <t>The protocol defines a low overhead packaging format optimized for WebCodecs
called WCP that is extensible to other formats such as FMP4.  This is not LoC
<xref target="LOC"/>, but will eventually be merged with that specification.</t>
    </section>
    <section anchor="protocol-operation">
      <name>Protocol Operation</name>
      <section anchor="track-names">
        <name>Track Names</name>
        <t>The publisher selects a namespace of their choosing, and sends an ANNOUNCE
message for this namespace.  Since MoQT tracks are immutable, each new broadcast
<bcp14>MUST</bcp14> have a unique namespace.  It is <bcp14>RECOMMENDED</bcp14> that the last tuple of the
track namespace contain a broadcast timestamp to ensure uniqueness.</t>
        <t>Within the namespace the publisher offers media tracks named <tt>videoX</tt> and
<tt>audioX</tt>, where X is an integer starting at 0 and increasing by 1 for each
additional track of a given type.</t>
        <t>For example, if the publisher issues 2 audio tracks and 1 video track, the track
names available will be <tt>video0</tt>, <tt>audio0</tt>, and <tt>audio1</tt>.</t>
        <t>The subscriber will consider all of those tracks belonging to the same
namespace as part of the same synchronization group (timestamps aligned to the
same timeline).</t>
      </section>
      <section anchor="mapping-tracks-to-moqt-object-model">
        <name>Mapping Tracks to MoQT Object Model</name>
        <t>For the video track, the publisher begins a new group at the start of each IDR
(so object 0 will be always an IDR Keyframe), and each group contains a single
subgroup.  Each object has the format described in <xref target="object-format"/>.</t>
        <t>For the audio track, the publisher begins a new group with each audio object,
and each group contains a single subgroup.  Each object has the format described
in <xref target="object-format"/>.</t>
        <t>TODO: Datagram forwarding preference could be used, but has problems if audio
frame does not fit in a single UDP payload.</t>
      </section>
      <section anchor="timestamps">
        <name>Timestamps</name>
        <t>To avoid using fractional numbers and having to deal with rounding errors,
timestamps will be expressed with two integers:</t>
        <ul spacing="normal">
          <li>
            <t>timestamp numerator (ex: PTS, DTS, duration)</t>
          </li>
          <li>
            <t>timebase</t>
          </li>
        </ul>
        <t>To convert a timestamp into seconds you just need to:
timestamp(s) = timestamp numerator / timebase</t>
        <t><em>Example:</em></t>
        <artwork><![CDATA[
PTS = 11, timebase = 30

PTS(s) = 11/30 = 0.366666
]]></artwork>
      </section>
      <section anchor="object-format">
        <name>Object Format</name>
        <t>All objects this protocol have the following format.</t>
        <figure anchor="media-object">
          <name>MOQT Media object</name>
          <artwork><![CDATA[
{
  Media Type (i)
  Media payload (..)
}
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>
            <t>Media Type: Indicates what kind of media payload will follow.</t>
          </li>
        </ul>
        <table anchor="media-interop-meda-type">
          <name>Media Types</name>
          <thead>
            <tr>
              <th align="right">Code</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">0x0</td>
              <td align="left">Video H264 in AVCC with WCP</td>
            </tr>
            <tr>
              <td align="right">0x1</td>
              <td align="left">Audio Opus bitstream</td>
            </tr>
          </tbody>
        </table>
        <ul spacing="normal">
          <li>
            <t>Media payload: Media type specific payload</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="video-h264-in-avcc-with-wcp-payload-format">
      <name>Video H264 in AVCC with WCP Payload Format</name>
      <figure anchor="media-object-video-h264-avcc-wcp">
        <name>MOQT Media video h264 WCP</name>
        <artwork><![CDATA[
{
  Seq ID (i)
  PTS Timestamp (i)
  DTS Timestamp (i)
  Timebase (i)
  Duration (i)
  Wall Clock (i)
  Metadata Size (i)
  Metadata (..)
  Payload (..)
}
]]></artwork>
      </figure>
      <ul spacing="normal">
        <li>
          <t>Seq ID: Monotonically increasing counter for this media track.</t>
        </li>
        <li>
          <t>PTS Timestamp: Presentation timestamp in timebase.</t>
        </li>
      </ul>
      <t>TODO: Varint does NOT accept easily negative values, so it could be challenging
to encode at start (priming).</t>
      <ul spacing="normal">
        <li>
          <t>DTS Timestamp: Display timestamp in timebase.  If B frames are not used, the
 encoder <bcp14>SHOULD</bcp14> set this to the same value as PTS.</t>
        </li>
      </ul>
      <t>TODO: Varint does NOT accept easily negative values, so it could be challenging
to encode at start (priming).</t>
      <ul spacing="normal">
        <li>
          <t>Timebase: Denominator used to calculate <tt>PTS</tt>, <tt>DTS</tt>, and <tt>Duration</tt>.</t>
        </li>
        <li>
          <t>Duration: Duration of Payload in timebase.  It will be 0 if not set.</t>
        </li>
        <li>
          <t>Wall Clock: Epoch time in ms when this frame started being captured. It will
be 0 if not set.</t>
        </li>
        <li>
          <t>Metadata Size: Size in bytes of the metadata section.  It will be 0 when no
metadata is present.</t>
        </li>
        <li>
          <t>Metadata: Extra data needed to decode this stream. This will be
<tt>AVCDecoderConfigurationRecord</tt> as described in <xref target="ISO14496"/> section
5.3.3.1, with field <tt>lengthSizeMinusOne</tt> = 3 (So length = 4). If any other size
length is indicated (in <tt>AVCDecoderConfigurationRecord</tt>), the receiver <bcp14>SHOULD</bcp14>
close the session with a <tt>Protocol Violation</tt> error.
Any change in encoding parameters <bcp14>MUST</bcp14> send a new
<tt>AVCDecoderConfigurationRecord</tt></t>
        </li>
        <li>
          <t>Payload: H264 with bitstream AVC1 format as described in <xref target="ISO14496"/>
section 5.3.  Using 4 bytes size field length.</t>
        </li>
      </ul>
    </section>
    <section anchor="audio-opus-bitstream-payload-format">
      <name>Audio Opus bitstream Payload Format</name>
      <figure anchor="media-object-audio-opus-WCP">
        <name>MOQT Media audio Opus WCP</name>
        <artwork><![CDATA[
{
  Seq ID (i)
  PTS Timestamp (i)
  Timebase (i)
  Sample Freq (i)
  Num Channels (i)
  Duration (i)
  Wall Clock (i)
  Payload (..)
}
]]></artwork>
      </figure>
      <ul spacing="normal">
        <li>
          <t>Seq Id: Monotonically increasing counter for this media track.</t>
        </li>
        <li>
          <t>PTS Timestamp: Indicates PTS in timebase.</t>
        </li>
      </ul>
      <t>TODO: Varint does NOT accept easily negative, so it could be challenging to
encode at start (priming).</t>
      <ul spacing="normal">
        <li>
          <t>Timebase: Denominator used to calculate <tt>PTS</tt> and <tt>Duration</tt>.</t>
        </li>
        <li>
          <t>Sample Freq: Sample frequency used in the original signal (before encoding).</t>
        </li>
        <li>
          <t>Num Channels: Number of channels in the original signal (before encoding).</t>
        </li>
        <li>
          <t>Duration: Duration of Payload in timebase.  It will be 0 if not set.</t>
        </li>
        <li>
          <t>Wall Clock: Epoch time in ms when this frame started being captured. It will
be 0 if not set.</t>
        </li>
        <li>
          <t>Payload: Opus packets, as described in <xref target="RFC6716"/> - section 3</t>
        </li>
      </ul>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="MOQT">
          <front>
            <title>Media over QUIC Transport</title>
            <author fullname="Luke Curley" initials="L." surname="Curley">
              <organization>Discord</organization>
            </author>
            <author fullname="Kirill Pugin" initials="K." surname="Pugin">
              <organization>Meta</organization>
            </author>
            <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>
            <date day="21" month="October" year="2024"/>
            <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-07"/>
        </reference>
        <reference anchor="ISO14496" target="https://www.iso.org/standard/74429.html">
          <front>
            <title>Carriage of network abstraction layer (NAL) unit structured video in the ISO base media file format</title>
            <author>
              <organization>ISO</organization>
            </author>
            <date year="2019"/>
          </front>
        </reference>
        <reference anchor="RFC6716">
          <front>
            <title>Definition of the Opus Audio Codec</title>
            <author fullname="JM. Valin" initials="JM." surname="Valin"/>
            <author fullname="K. Vos" initials="K." surname="Vos"/>
            <author fullname="T. Terriberry" initials="T." surname="Terriberry"/>
            <date month="September" year="2012"/>
            <abstract>
              <t>This document defines the Opus interactive speech and audio codec. Opus is designed to handle a wide range of interactive audio applications, including Voice over IP, videoconferencing, in-game chat, and even live, distributed music performances. It scales from low bitrate narrowband speech at 6 kbit/s to very high quality stereo music at 510 kbit/s. Opus uses both Linear Prediction (LP) and the Modified Discrete Cosine Transform (MDCT) to achieve good compression of both speech and music. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6716"/>
          <seriesInfo name="DOI" value="10.17487/RFC6716"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="LOC">
          <front>
            <title>Low Overhead Media Container</title>
            <author fullname="Mo Zanaty" initials="M." surname="Zanaty">
              <organization>Cisco</organization>
            </author>
            <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
              <organization>Cisco</organization>
            </author>
            <author fullname="Peter Thatcher" initials="P." surname="Thatcher">
              <organization>Microsoft</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   This specification describes a media container format for encoded and
   encrypted audio and video media data to be used primarily for
   interactive Media over QUIC transport (MOQ), with the goal of it
   being a low-overhead format.  It also defines the LOC Streaming
   Format for the MOQ Common Catalog format for publishers to annouce
   and describe their LOC tracks and for subscribers to consume them.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mzanaty-moq-loc-03"/>
        </reference>
      </references>
    </references>
    <?line 266?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAOPHFmcAA9VZ61IbRxb+30/RK/+BlCQkm3ViVW6KBAm7gDAIOymXq2jN
tKQJo+nJdA9CvuRZ9ln2yfY7p3tGEgZftlJbtdiF1PdzvvOdSzetVku4xKW6
Jxsn5rk80XGi5FHmdGHyhlCTSaFvMLYwf7QWSUNEyumZKVY9mWRTI0Rsokwt
sDou1NS1Ip29UZlp8XTaqpX4rVqdjrDlZJFYm5jMrXIsOToYH0r5SKrUGhyR
ZLHONX5lrtGUDax2pkhUSo2j/k/4MAW+nY8PGyIrFxNd9EQMcXoiMpnVmS1t
T7qi1AICPxGq0Aq7vtQTqbLYq5RpJ8eFymxuCtcQS1NczwpT5qQ8Kz660YV8
fnk0aIhrvcJ43BOyFVAx1aC40VmJc6V8cLWUXsfGS5yRZDP5M82k/oVKUg/o
j4l207YpZtStimiO7rlzue3t7dEs6kpudLuatkcde5PCLK3ew/o9WjdL3Lyc
YKWaFkBw744dNm1A01MAZt3GQX5Z22/TTszHNrg7dtfI7blbpA0hVOnmpiDk
cKKU0zJNPUn+AUATOQjrD3VRaMdToJ3KkjfKgRw9wO0Ud2sP1u/hxB8XGGhH
ZiE+3Lqfqkweki46TT9jT6/3xo6ZKRaYe8N2PRk9H4OgrSGDz5q6ijc4XB5d
jLr7+8+e9nhLp4qZBqgVpsvlsp1YwzazDuxTRbz39f7+42eMkF/jnW6gCnB8
pqWZSrCTGCnVxOKwiOSGvVbg1M5p/3hXllniJIbKyJWFjuVNEmsDP5Rurkki
OVFWS7aInCapllNWiY+rTSIDND1awU32Ifm4030mBDn1BgzHo4FHYQH4lVsx
EKmJhGi1WrWcQozniZV5YZyJTCojWGKiZWkhozMSrhmzCxY60tg4yE09qowT
4/1q7WKCPGjtpvIVGeN125+5SOI41UI8IocuTFwyTHclsLmOkmmirVTSJos8
JViiOehgF4QKy0Re6cHauSPRrvAi4VyePTFuLlOI3oLCWi1oJU1+MSAloa/V
ti3lGGaoRYA401TfJhOcnWQCxMeOhEaZs1aOBIaO3vTrbYTwSOSqAK/hVrbG
MydLxZXBPRK0WHGbTHEtd/RtT05pKTZ3uikKbU1aEkhNGZlYR02pXbRLiG1I
G+tpkjFcqVmyFeZaxRAiulYzUtfTQprcJYvkDaQgXBBbB7SlRVpIU3S+HJxB
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
ANqN7/ZtHQAA

-->

</rfc>
