<?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.6.34 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-law-moq-warpstreamingformat-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.3 -->
  <front>
    <title>WARP Streaming Format</title>
    <seriesInfo name="Internet-Draft" value="draft-law-moq-warpstreamingformat-00"/>
    <author fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <author fullname="Luke Curley">
      <organization>Twitch</organization>
      <address>
        <email>kixelated@gmail.com</email>
      </address>
    </author>
    <author fullname="Victor Vasiliev">
      <organization>Google</organization>
      <address>
        <email>vasilvv@google.com</email>
      </address>
    </author>
    <author fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <author fullname="Kirill Pugin">
      <organization>Meta</organization>
      <address>
        <email>ikir@meta.com</email>
      </address>
    </author>
    <date year="2023" month="June" day="08"/>
    <area>Applications and Real-Time</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>MoQ</keyword>
    <keyword>MoQTransport</keyword>
    <keyword>WARP</keyword>
    <abstract>
      <?line 63?>

<t>This document specifies the WARP Streaming Format, designed to operate on Media Over QUIC Transport.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://wilaw.github.io/MoQ/draft-law-moq-warpmedia.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-law-moq-warpstreamingformat/"/>.
      </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/wilaw/MoQ"/>.</t>
    </note>
  </front>
  <middle>
    <?line 68?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>WARP Streaming Format (WARP) is a media format designed to deliver CMAF <xref target="CMAF"/> compliant media content over Media Over QUIC Transport (MOQT) <xref target="MoQTransport"/>. WARP works by fragmenting the bitstream into objects that can be independently transmitted. WARP leverages a simple prioritization strategy of assigning newer content a higher delivery order, allowing intermediaries to drop older data, and video over audio, in the face of congestion. Either complete Groups of Pictures (GOPS) <xref target="ISOBMFF"/> or individual frames are mapped to MoQTransport Objects. WARP is targeted at interactive levels of live latency.</t>
      <t>This document describes version 1 of the streaming format.</t>
    </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?>

<t>This document uses the conventions detailed in Section 1.3 of <xref target="RFC9000"/> when describing the binary encoding.</t>
    </section>
    <section anchor="packaging">
      <name>Packaging</name>
      <t>Each codec bitstream <bcp14>MUST</bcp14> be packaged in to a sequence of Objects within a separate track.</t>
      <t>Media tracks <bcp14>SHOULD</bcp14> be media-time aligned. CMAF <xref target="CMAF"/> Aligned Switching Sets meet this requirement. A receiver <bcp14>SHOULD</bcp14> be able to cleanly switch between media tracks at group boundaries.</t>
      <t>Each group <bcp14>MUST</bcp14> be independently decodeable. Assigning a new group ID to each CMAF Fragment (see <xref target="CMAF"/> Sect 6.6.1) meets this requirement.</t>
      <section anchor="catalog-objects">
        <name>Catalog objects</name>
        <t>The catalog object <bcp14>MUST</bcp14> have a track name of "catalog".</t>
        <t>A catalog object <bcp14>MAY</bcp14> be independent of other catalog objects or it <bcp14>MAY</bcp14> represent a delta update of a prior catalog object. The first catalog object published within a new group <bcp14>MUST</bcp14> be independent.  A catalog object <bcp14>SHOULD</bcp14> only be published only when the availability of tracks changes.</t>
        <t>The format of the CATALOG object payload is as follows:</t>
        <figure anchor="warpmedia-catalog-body">
          <name>WARP CATALOG body</name>
          <artwork><![CDATA[
CATALOG payload {
  media format type (i),
  version (i),
  parent object sequence (i),
  track change count (i),
  track change descriptors (..)
}
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>Media format type: this <bcp14>MUST</bcp14> hold the value 0x001 (see <xref target="IANA"/>). This value <bcp14>MUST NOT</bcp14> be encrypted.</li>
          <li>Version: this <bcp14>MUST</bcp14> be the version of WARP to which the media packaging and catalog serialization conforms.</li>
          <li>Parent object sequence: 0 if this object represents an independent catalog or the <xref target="MoQTransport"/> (Sect 6.2) parent object sequence if this represents a delta update.</li>
          <li>Track change count:
The number of track changes described by the catalog. A catalog update describing 0 tracks, or deleting all existing tracks, <bcp14>SHALL</bcp14> be interpreted by the WARP client to mean that the publishing session is complete. A WARP client <bcp14>SHOULD</bcp14> process all changes before making a subscription selection.</li>
        </ul>
        <t>Each track change is described by a track change descriptor with the format:</t>
        <figure anchor="warpmedia-track-descriptor">
          <name>Track change descriptor</name>
          <artwork><![CDATA[
Track Change Descriptor {
  full track name length (i),
  full track name (..),
  operation (1),
  change payload(..)
}
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>Full track name length: the length of the full track name field</li>
          <li>Full track name: the Full Track Name as defined by <xref target="MoQTransport"/> (Sect 2.3.1). Track names <bcp14>MUST</bcp14> never be reused. If a track is published and then unpublished, it must be allocated a new track name before it is re-published. A catalog <bcp14>MUST NOT</bcp14> reference itself i.e the the track name must not be "catalog".</li>
          <li>Operation: a binary flag. 1 if the track is being added and 0 if it is being deleted. A publisher <bcp14>MUST NOT</bcp14> signal deletion of a track that has not been previously added.</li>
          <li>Change payload:  depends upon the value of the operation flag. If the operation is a 1 (add), then it <bcp14>SHALL</bcp14> hold an Initialization Header. If the operation is 0 (delete), then it <bcp14>SHALL</bcp14> hold a Deletion Header.</li>
        </ul>
        <figure anchor="warpmedia-initialization-header">
          <name>Initialization Header</name>
          <artwork><![CDATA[
Initialization Header {
  init length (i)
  init payload (..)
}
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>Init length: the length of the init payload</li>
          <li>Init payload:
The init payload <bcp14>MUST</bcp14> consist of a File Type Box (ftyp) followed by a Movie Box (moov). This Movie Box (moov) consists of Movie Header Boxes (mvhd), Track Header Boxes (tkhd), Track Boxes (trak), followed by a final Movie Extends Box (mvex). These boxes <bcp14>MUST NOT</bcp14> contain any samples and <bcp14>MUST</bcp14> have a duration of zero. A Common Media Application Format Header <xref target="CMAF"/> meets all these requirements.</li>
        </ul>
        <figure anchor="warpmedia-deletion-header">
          <name>Deletion Header</name>
          <artwork><![CDATA[
Deletion Header {
  Last group: (i),
  Last object: (i)
}
]]></artwork>
        </figure>
        <ul spacing="normal">
          <li>Last group: holds the last <xref target="MoQTransport"/> Group sequence number published under that track name.</li>
          <li>Last object: holds the last <xref target="MoQTransport"/> Object sequence number published under that track name.</li>
        </ul>
      </section>
      <section anchor="media-objects">
        <name>Media Objects</name>
        <t>Object Delivery Order <bcp14>MUST</bcp14> match the Object sequence number.</t>
        <t>The media object payload:</t>
        <ul spacing="normal">
          <li>
            <bcp14>MUST</bcp14> consist of a Segment Type Box (styp) followed by any number of media fragments. Each media fragment consists of a Movie Fragment Box (moof) followed by a Media Data Box (mdat). The Media Fragment Box (moof) <bcp14>MUST</bcp14> contain a Movie Fragment Header Box (mfhd) and Track Box (trak) with a Track ID (<tt>track_ID</tt>) matching a Track Box in the initialization fragment.</li>
          <li>
            <bcp14>MUST</bcp14> contain a single <xref target="ISOBMFF"/> track.</li>
          <li>
            <bcp14>MUST</bcp14> contain media content encoded in decode order. This implies an increasing decoding time stamp (DTS).</li>
          <li>
            <bcp14>MAY</bcp14> contain any number of frames/samples.</li>
          <li>
            <bcp14>MAY</bcp14> have gaps between frames/samples.</li>
          <li>
            <bcp14>MAY</bcp14> overlap with other objects. This means timestamps may be interleaved between objects.</li>
        </ul>
        <t>Two options are <bcp14>RECOMMENDED</bcp14> for packaging CMAF content into WARP media objects:</t>
        <ul spacing="normal">
          <li>the first is to package a complete CMAF Fragment (see <xref target="CMAF"/> sect 6.6.1) into a single object within each group. This results in there being a single GOP (Group of Pictures) in the media object and a single media object per group.</li>
          <li>The second is to package a CMAF chunk (see <xref target="CMAF"/> sect 6.6.5), in which the mdat holds a single frame of video, or sample of audio, into each object and to assign a unique group ID to each fragment. This approach is <bcp14>RECOMMENDED</bcp14> to minimize latency.</li>
        </ul>
      </section>
    </section>
    <section anchor="workflow">
      <name>Workflow</name>
      <t>A WARP publisher <bcp14>MUST</bcp14> publish a catalog track object before publishing any media track objects.</t>
      <t>At the completion of a session, a publisher should publish a catalog object with track count of 0. This <bcp14>SHOULD</bcp14> be interpreted by receivers that the publish session is complete.</t>
    </section>
    <section anchor="content-protection-and-encryption">
      <name>Content protection and encryption</name>
      <t>The catalog and media object payloads <bcp14>MAY</bcp14> be encrypted. Common Encryption <xref target="CENC"/> with 'cbcs' mode (AES CBC with pattern encryption) is the <bcp14>RECOMMENDED</bcp14> encryption method.</t>
      <t>ToDo - details of how keys are exchanged and license servers signalled.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>ToDo</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document creates a new entry in the "MoQ Streaming Format" Registry (see <xref target="MoQTransport"/> Sect 8).  The type value is 0x001, the name is "WARP Streaming Format" and the RFC is XXX.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="MoQTransport">
        <front>
          <title>Media over QUIC Transport</title>
          <author fullname="Luke Curley" initials="L." surname="Curley">
            <organization>Twitch</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>
          <date day="26" month="May" year="2023"/>
          <abstract>
            <t>   This document defines the core behavior for Media over QUIC Transport
   (MOQT), a media transport protocol over QUIC.  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-lcurley-moq-transport-00"/>
      </reference>
      <reference anchor="RFC9000">
        <front>
          <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
          <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
            <organization/>
          </author>
          <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
            <organization/>
          </author>
          <date month="May" year="2021"/>
          <abstract>
            <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9000"/>
        <seriesInfo name="DOI" value="10.17487/RFC9000"/>
      </reference>
      <reference anchor="ISOBMFF">
        <front>
          <title>Information technology -- Coding of audio-visual objects -- Part 12: ISO Base Media File Format</title>
          <author>
            <organization/>
          </author>
          <date year="2015" month="December"/>
        </front>
      </reference>
      <reference anchor="CMAF">
        <front>
          <title>Information technology -- Multimedia application format (MPEG-A) -- Part 19: Common media application format (CMAF) for segmented media</title>
          <author>
            <organization/>
          </author>
          <date year="2020" month="March"/>
        </front>
      </reference>
      <reference anchor="CENC">
        <front>
          <title>International Organization for Standardization - Information technology - MPEG systems technologies - Part 7: Common encryption in ISO base media file format files</title>
          <author>
            <organization/>
          </author>
          <date year="2020" month="December"/>
        </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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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>
    <?line 212?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <ul spacing="normal">
        <li>Alan Frindell</li>
        <li>Ali Begen</li>
        <li>Charles Krasic</li>
        <li>Christian Huitema</li>
        <li>Cullen Jennings</li>
        <li>Hang Shi</li>
        <li>James Hurley</li>
        <li>Jordi Cenzano</li>
        <li>Mike English</li>
        <li>the MoQ Workgroup and mailing lists.</li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA41a6XLbRhL+j6eYpX9ESomQZOdk5TBNSbYSXbGUOKmtrc0Q
GJKzAgEGA5CSXc6z7LPsk+3X3TMAeGg3PxITjZm+b6jf70eVrTIzUL13w7c3
6rYqjZ7bfKrOinKuq16U6MpMi/JxoGw+KaIoLZJcz3EhLfWk6md61Z8Xf/RX
uly4cHnCd/tHR5Grx3PrnC3y6nGBS+end2dKPVM6cwVo2jw1C4P/5VXvQPXO
h6/wT1Hi19u7s16U1/OxKQdRCh4GUVLkzuSudgNVlbWJlgP1ItIgCUTDxSKz
YBWEnNJ5qt4anfXv7Nz0olVR3k/Lol7g3KVJrVbXS1Oqn34+H/Wie/OI9+kg
Un11Wfzk/7krde4WRVnRMykmWpq8Bg9KPYlJKRGx9w70SIOv6STB59pmgENN
L62pJnFRTgmsy2QG8KyqFm5weEinCGSXJg7HDglwOC6LlTOHuH9I96a2mtVj
3FzhwuoQ7BI0g45c1cHHb2M5HNuCzh1u22xOYsSzap71okjX1awoSRdAqNSk
zjKx9TubZepCrxgMvnRu37OyB2p4r8E5vzAiKBN+qRkeJ8V8G91FfW/UqC4z
87gD493KVsmsi/HePhiSL305JcBupL/YpILr/KKdzaxZ7kD8uiimmekiXtLh
5fLllN/sxntbz7RTV3AqfV/PdbkD8ci6pOjidbkcf5nQm914f7QlafWmntp8
B85LU+kuSntvy5dzABlblHOIwVfIJ7seixjrn8RZwtplM1etM6u3Z6Ovj46O
BuEHQOe3168uz84GTCwkg/NcYhisqMoks7zIiumj6vfVqEjJuYuJ0nVqi/7S
ulpnqhj/yySVoxM3uqzU8fMBYVavtDNKYuXMZqZJK0SMw1o9Pzr+vH/8HJDR
5fAvs3FZZ5Vl51W6jX0lx9Xe5c3p6/5wv2Xna1ipmM9x5OlLRH+fnpQz0zly
kknl9Dq7z4/6Ry+I3dOr0Sa7lSlzRgqVXHfsyVhvK/KKMg2wvnpKPkX8K/fo
KjN37RtroGAR6MtGHpMn5eOCUdicdT4mnYuYE9K5l49+uy1RoPnIBjbInaKo
D63pMbK5TqoouptZp5D1a9KIcguT2AkxUs2M2lkzDlRqnJ3m0F5VqGJhSlBT
YG8jZarGZ2NPdG7TFAEaPYNiqrJI64TEiqKdZNQegfcVuNNBWnnRJZ+azBJB
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
Xyl6InMCJAAA

-->

</rfc>
