<?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.39 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wilaw-moq-webvtt-msf-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title>WebVTT Packaging for MOQT Streaming Format</title>
    <seriesInfo name="Internet-Draft" value="draft-wilaw-moq-webvtt-msf-00"/>
    <author fullname="Will Law">
      <organization>Akamai</organization>
      <address>
        <email>wilaw@akamai.com</email>
      </address>
    </author>
    <author fullname="Suhas Nandakumar">
      <organization>Cisco</organization>
      <address>
        <email>snandaku@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Applications and Real-Time</area>
    <workgroup>Media Over QUIC</workgroup>
    <keyword>MoQ</keyword>
    <keyword>MSF</keyword>
    <keyword>WebVTT</keyword>
    <abstract>
      <?line 42?>

<t>This document specifies the JSON packaging format for delivering WebVTT
caption and subtitle content as event timeline tracks within the MOQT
Streaming Format (MSF).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wilaw-moq-webvtt-msf/"/>.
      </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>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document defines how WebVTT <xref target="WEBVTT"/> content is packaged for
delivery over MSF <xref target="MSF"/> event timelines using the <tt>urn:msf:captions:webvtt</tt>
event type.</t>
      <t>WebVTT is a widely-used format for delivering captions and subtitles on the web.
MSF event timeline tracks (<xref section="11" sectionFormat="comma" target="MSF"/>) provide a mechanism for delivering
time-synchronized metadata alongside media content. This specification defines a
JSON <xref target="JSON"/> packaging format that maps WebVTT cues to MSF event timeline records,
preserving WebVTT semantics while enabling synchronized delivery over MOQT.</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?>

</section>
    <section anchor="cue-structure">
      <name>Cue Structure</name>
      <t>Each WebVTT cue is mapped to an MSF event timeline record (<xref section="11.1" sectionFormat="comma" target="MSF"/>).
The record's <tt>m</tt> (media time) index indicates when the cue becomes active, and
the <tt>data</tt> field contains a JSON object with the following fields:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Field</th>
            <th align="left">Type</th>
            <th align="left">Required</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">start</td>
            <td align="left">Number</td>
            <td align="left">Yes</td>
            <td align="left">Cue start time in milliseconds</td>
          </tr>
          <tr>
            <td align="left">end</td>
            <td align="left">Number</td>
            <td align="left">Yes</td>
            <td align="left">Cue end time in milliseconds</td>
          </tr>
          <tr>
            <td align="left">id</td>
            <td align="left">String</td>
            <td align="left">No</td>
            <td align="left">Cue identifier</td>
          </tr>
          <tr>
            <td align="left">text</td>
            <td align="left">String</td>
            <td align="left">Yes</td>
            <td align="left">Cue payload (may contain tags)</td>
          </tr>
          <tr>
            <td align="left">settings</td>
            <td align="left">Object</td>
            <td align="left">No</td>
            <td align="left">Positioning settings</td>
          </tr>
          <tr>
            <td align="left">region</td>
            <td align="left">String</td>
            <td align="left">No</td>
            <td align="left">Region identifier</td>
          </tr>
        </tbody>
      </table>
      <t>The <tt>text</tt> field preserves WebVTT cue text tags. Times are in milliseconds,
consistent with MSF media time conventions (<xref section="10.1" sectionFormat="comma" target="MSF"/>). The <tt>m</tt>
index value <bcp14>MUST</bcp14> equal the <tt>start</tt> value in the corresponding <tt>data</tt> object.</t>
      <t>WebVTT NOTE blocks and the file header description are discarded during packaging.</t>
      <section anchor="settings-object">
        <name>Settings Object</name>
        <t>The optional <tt>settings</tt> object maps WebVTT cue settings to JSON properties,
preserving the WebVTT syntax verbatim:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">vertical</td>
              <td align="left">String</td>
              <td align="left">Writing direction: "rl" or "lr"</td>
            </tr>
            <tr>
              <td align="left">line</td>
              <td align="left">String</td>
              <td align="left">Line position (e.g., "0", "-1", "50%,center")</td>
            </tr>
            <tr>
              <td align="left">position</td>
              <td align="left">String</td>
              <td align="left">Text position (e.g., "50%", "10%,line-left")</td>
            </tr>
            <tr>
              <td align="left">size</td>
              <td align="left">String</td>
              <td align="left">Cue box size percentage (e.g., "80%")</td>
            </tr>
            <tr>
              <td align="left">align</td>
              <td align="left">String</td>
              <td align="left">Text alignment: "start", "center", "end", "left", or "right"</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="regions-styles">
      <name>Regions and Styles</name>
      <t>WebVTT region definitions and CSS style blocks are delivered as an initialization
record at media time 0, analogous to codec initialization data (<xref section="5.3.11" sectionFormat="comma" target="MSF"/>).
Receivers <bcp14>MUST</bcp14> process this record before rendering any cues.</t>
      <t>An initialization record is distinguished from cue records by the presence
of <tt>regions</tt> and/or <tt>styles</tt> keys in the <tt>data</tt> object.</t>
      <section anchor="region-properties">
        <name>Region Properties</name>
        <t>Each region object in the <tt>regions</tt> array maps WebVTT region settings:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Type</th>
              <th align="left">Required</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">id</td>
              <td align="left">String</td>
              <td align="left">Yes</td>
              <td align="left">Region identifier</td>
            </tr>
            <tr>
              <td align="left">width</td>
              <td align="left">String</td>
              <td align="left">No</td>
              <td align="left">Width as percentage of video (default "100%")</td>
            </tr>
            <tr>
              <td align="left">lines</td>
              <td align="left">Number</td>
              <td align="left">No</td>
              <td align="left">Number of visible lines (default 3)</td>
            </tr>
            <tr>
              <td align="left">regionanchor</td>
              <td align="left">String</td>
              <td align="left">No</td>
              <td align="left">X,Y anchor within region (default "0%,100%")</td>
            </tr>
            <tr>
              <td align="left">viewportanchor</td>
              <td align="left">String</td>
              <td align="left">No</td>
              <td align="left">X,Y anchor on viewport (default "0%,100%")</td>
            </tr>
            <tr>
              <td align="left">scroll</td>
              <td align="left">String</td>
              <td align="left">No</td>
              <td align="left">Scroll mode; only valid value is "up"</td>
            </tr>
          </tbody>
        </table>
        <t>Example initialization record:</t>
        <sourcecode type="json"><![CDATA[
{
    "m": 0,
    "data": {
        "regions": [
            {"id": "bottom", "width": "100%", "lines": 2,
             "regionanchor": "50%,100%", "viewportanchor": "50%,90%"}
        ],
        "styles": "::cue { background: rgba(0,0,0,0.8); }"
    }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="track-structure">
      <name>Event Timeline Track Structure</name>
      <t>Following <xref section="11.3" sectionFormat="comma" target="MSF"/>, a WebVTT event timeline track uses
independent and incremental objects within each MOQT Group:</t>
      <ul spacing="normal">
        <li>
          <t>The first Object in each Group <bcp14>MUST</bcp14> be independent, containing all
accumulated cue records up to that point (enabling mid-stream join).</t>
        </li>
        <li>
          <t>Subsequent Objects within the same Group <bcp14>MAY</bcp14> contain only new cue records.</t>
        </li>
      </ul>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>A complete event timeline payload with two cues:</t>
      <sourcecode type="json"><![CDATA[
[
    {
        "m": 0,
        "data": {
            "start": 0,
            "end": 2500,
            "text": "Welcome to the show."
        }
    },
    {
        "m": 2500,
        "data": {
            "start": 2500,
            "end": 5000,
            "text": "<v Alice>Hello everyone!</v>",
            "settings": {"align": "center"}
        }
    }
]
]]></sourcecode>
      <t>The <tt>m</tt> index is required by MSF for timeline synchronization and subscriber
join; the <tt>start</tt> and <tt>end</tt> values within <tt>data</tt> make each cue self-contained
for rendering.</t>
    </section>
    <section anchor="catalog-declaration">
      <name>Catalog Declaration</name>
      <t>A WebVTT caption track is declared in the MSF catalog (<xref section="5.3" sectionFormat="comma" target="MSF"/>)
with the following fields:</t>
      <ul spacing="normal">
        <li>
          <t><tt>packaging</tt>: <bcp14>MUST</bcp14> be <tt>eventtimeline</tt> (<xref section="5.3.3" sectionFormat="comma" target="MSF"/>)</t>
        </li>
        <li>
          <t><tt>eventType</tt>: <bcp14>MUST</bcp14> be <tt>urn:msf:captions:webvtt</tt> (<xref section="5.3.4" sectionFormat="comma" target="MSF"/>)</t>
        </li>
        <li>
          <t><tt>depends</tt>: <bcp14>MUST</bcp14> list the video track(s) this caption track accompanies (<xref section="5.3.14" sectionFormat="comma" target="MSF"/>)</t>
        </li>
        <li>
          <t><tt>mimeType</tt>: <bcp14>MUST</bcp14> be <tt>application/json</tt> (<xref section="5.3.17" sectionFormat="comma" target="MSF"/>)</t>
        </li>
        <li>
          <t><tt>role</tt>: <bcp14>SHOULD</bcp14> be <tt>caption</tt> or <tt>subtitle</tt> as appropriate (<xref section="5.3.6" sectionFormat="comma" target="MSF"/>)</t>
        </li>
        <li>
          <t><tt>lang</tt>: <bcp14>SHOULD</bcp14> specify the caption language per RFC 5646 (<xref section="5.3.24" sectionFormat="comma" target="MSF"/>)</t>
        </li>
      </ul>
      <t>Example:</t>
      <sourcecode type="json"><![CDATA[
{
    "name": "captions-en",
    "packaging": "eventtimeline",
    "eventType": "urn:msf:captions:webvtt",
    "mimeType": "application/json",
    "depends": ["video"],
    "role": "caption",
    "lang": "en",
    "isLive": true
}
]]></sourcecode>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests registration of the <tt>urn:msf:captions:webvtt</tt> event type
in the "MSF Event Timeline Types" registry established by <xref section="14.2" sectionFormat="comma" target="MSF"/>:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Event Type</th>
            <th align="left">Description</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">urn:msf:captions:webvtt</td>
            <td align="left">WebVTT caption cues</td>
            <td align="left">this document</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="MSF">
        <front>
          <title>MOQT Streaming Format</title>
          <author fullname="Will Law" initials="W." surname="Law">
            <organization>Akamai</organization>
          </author>
          <author fullname="Suhas Nandakumar" initials="S." surname="Nandakumar">
            <organization>Cisco</organization>
          </author>
          <date day="2" month="June" year="2026"/>
          <abstract>
            <t>   This document specifies the MOQT Streaming Format, designed to
   operate on Media Over QUIC Transport.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-moq-msf-01"/>
      </reference>
      <reference anchor="JSON">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
          <date month="December" year="2017"/>
          <abstract>
            <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
            <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
        <seriesInfo name="DOI" value="10.17487/RFC8259"/>
      </reference>
      <reference anchor="WEBVTT" target="https://www.w3.org/TR/webvtt1/">
        <front>
          <title>WebVTT: The Web Video Text Tracks Format</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year="2019" month="April"/>
        </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>
    </references>
    <?line 235?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
RZRveQdYtW2g53ItlaJbxDinxIiid5qXHBBhHqlwb6fgyngfT551nnS6Nkvf
qlDRycbiCOIpVMbY8s2dOlaohSmXA3RYlTJbcRmMMO/vs1ptouoPaIflZWxm
1EToPOUYdlWyGK84TDlqs1B5+USMnCpHpKgzKH9kdTqiCtdUYLYPX0eVXcT7
Gg1qswRbhKjKHGcXBzEV0e3RWiM17SKP21CBzz6ENHHkf60nWlHk/ysutkAS
R3vHtOblP5ELt7GFxhDJq5XkTnr9wKvgyzthCwMv+CbhGCEhy6QgUOAQrjDK
NOjW5cwOXTfGpEw8RhDZfTXJJydbVq3dJBqsXB9m9Z+nH4Vb45p8Z+8tm4Cu
HU4XsVrOc11UhP+QLGhVew4ShZ+gXv0jtQ7sqhSR/pVtgZDmYWSX7NH/lXPf
iu9dfpLpPFHt8Qkf/v333381wJY138n4qd8DothnCjD8XHsVN76LDgz+7Imd
z9qPIwz647wo8pSQk/2Dhlg4glIyEAYenzZ2VjStjmjDs0oj2NTUcTX7ApOb
msovW4K+xQla1+sRyKzFGMUIXSVmUU/o6Vgen5/yv87zk6/Exl5dbbwNqYGQ
/ZKbm2HV3PA9V6Nj4ouLRs/0pm4wHrZATzYboHMFIG13IKI0ynAhNydgpSY5
oy441IqyE5K/Baj66kkRdvFVMN97woKPuB6cxNoUVY1VreMlFtK56a5POa2K
bgbyJKFr0hBdeplIasl3ARoEkFX4AmSeo29H3q1uLdI4IlUomYpfMUX3Xo/E
oBwbQB+JctNknQDWSKQsx1b/Y136sxNnarl7Ml96VO67PlL2CRrvYxs9Fmpf
pVVbYbu/Zc75acfJrdfuOPSOu7e7vHMrKhAaK3mcqgR49LPz/QlqBXy+Qk2o
hbUKVHwF0fHrpdaHN6dtTDWJ/gFfLRxY1jB+iLWXC9FP4lC9+l7Bf0mRepVn
6i8vzxav/L09VcojDnyunIiCq5Y2+/J4v9hocl1K1eNTIeEyInI+tT10p1eb
bnsDJnfvZe29kPbIv75qdDa0YAQxXY9Te5mrC1J5p2wQ2I4hmQTO2VTk0cl1
IWMv17AJNRRSdZhIbVlYH4V2NIi2o+x/VS/i7pBtJFOtw+vsNRbfEUNKR6Ot
+kLp5X3uouKRGNXN1KhXx/GIvb7S3Ki1rmPaj9xSqkl29x+6B26l9NRRsthh
KjpoaQvm2yZzVsEx2ncuGZuKAbIgXmVGBVlrDVodkUKkfV7l9lXTGcVwO5Pd
Lx0JJEba7u7ZiIDjZSS4kHQX1CMusOdUFeoYkNdK9AtHM5GsfkfT3iDbqrWS
k1aUVNygzqG3KuLZF0+/aKX5mGWtsvLD/EtvhDi4nGkClblo9GtXoPmGC1Qr
amPTigNGrtZWuqal+zqu1jiTU7r32cy+S7Y+qXmHzWoD6YG5q0dic4W+wnfv
EOs8C5WUaGNXdKlNd/U2tuge++b1Db8x6V/3H042bpMJTpQpDBdq9HqIlYya
8LPvOsT2XYfnotSnMN3P/Jg3fkV6JXAQJT3uYQBf+6n+aefxZsMdgaPjbhO2
n7YuAJVc43VEW/n/uZJ/f4wqyANyUzHeBC1+g3G/d0N/b99cUdVEVuiHd1m+
TFQ0pVnjrXv2HbGKvvYnMjHK3ziT/RdK5ifPvh4AAA==

-->

</rfc>
