Media Over QUIC W. Law Internet-Draft Akamai Intended status: Informational S. Nandakumar Expires: 7 January 2027 Cisco 6 July 2026 IMSC1 Packaging for MOQT Streaming Format draft-law-moq-imsc1-msf-00 Abstract This document specifies the packaging format for delivering IMSC1 content as Event Timeline tracks within the MOQT Streaming Format (MSF). About This Document This note is to be removed before publishing as an RFC. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-law-moq-imsc1-msf/. Discussion of this document takes place on the Media Over QUIC Working Group mailing list (mailto:moq@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/moq/. Subscribe at https://www.ietf.org/mailman/listinfo/moq/. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 7 January 2027. Law & Nandakumar Expires 7 January 2027 [Page 1] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 Copyright Notice Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Conventions and Definitions . . . . . . . . . . . . . . . . . 2 3. Event Timeline Structure . . . . . . . . . . . . . . . . . . 3 4. Cue Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.1. Initialization Entry . . . . . . . . . . . . . . . . . . 3 4.2. Cue Entry . . . . . . . . . . . . . . . . . . . . . . . . 4 5. Document Mode . . . . . . . . . . . . . . . . . . . . . . . . 5 6. Catalog Declaration . . . . . . . . . . . . . . . . . . . . . 6 7. Security Considerations . . . . . . . . . . . . . . . . . . . 7 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 9. Normative References . . . . . . . . . . . . . . . . . . . . 7 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 1. Introduction IMSC1 [IMSC1] is a constrained TTML profile for subtitles and captions. This document defines how IMSC1 content is packaged as an MSF [MSF] Event Timeline track (Section 8 of [MSF]) using the urn:msf:captions:imsc1 event type. 2. Conventions and Definitions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. Law & Nandakumar Expires 7 January 2027 [Page 2] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 3. Event Timeline Structure Each MOQT Object in an IMSC1 track contains a JSON [JSON] array of Event Timeline records as defined in Section 8.1 of [MSF]. Each record is a JSON object with two fields: * m: Media presentation timestamp in milliseconds. * data: Payload object whose structure is defined by this specification. The publisher MUST include the initialization entry as the first record (with m set to 0) in the first MOQT Object of each MOQT Group, per the independence requirement in Section 8.3 of [MSF]. Two packaging modes are defined: * *Cue mode* (Section 4): JSON representation of individual cues, suitable for text-based subtitle/caption content. * *Document mode* (Section 5): Full IMSC1 XML representation, supporting embedded images, complex layouts, and animation. 4. Cue Mode Cue mode maps IMSC1 styling, region definitions, and individual cues to JSON objects. 4.1. Initialization Entry The initialization entry carries the IMSC1 profile identifier and reusable style and region definitions. +=========+========+==========+==========================+ | Field | Type | Required | Description | +=========+========+==========+==========================+ | profile | String | Yes | IMSC1 profile URI | +---------+--------+----------+--------------------------+ | styles | Object | No | Named style definitions | +---------+--------+----------+--------------------------+ | regions | Object | No | Named region definitions | +---------+--------+----------+--------------------------+ Table 1 The data field MUST contain an init object with the fields above: Law & Nandakumar Expires 7 January 2027 [Page 3] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 [ { "m": 0, "data": { "init": { "profile": "http://www.w3.org/ns/ttml/profile/imsc1/text", "styles": { "s1": {"color": "#FFFFFFFF", "backgroundColor": "#000000C0"} }, "regions": { "bottom": {"origin": "10% 80%", "extent": "80% 15%", "displayAlign": "after", "textAlign": "center"} } } } } ] 4.2. Cue Entry Each cue entry maps an IMSC1

element to JSON. The m field MUST equal the start value. +=========+========+==========+=============================+ | Field | Type | Required | Description | +=========+========+==========+=============================+ | start | Number | Yes | Start time in milliseconds | +---------+--------+----------+-----------------------------+ | end | Number | Yes | End time in milliseconds | +---------+--------+----------+-----------------------------+ | region | String | No | Region identifier from init | +---------+--------+----------+-----------------------------+ | style | String | No | Style identifier from init | +---------+--------+----------+-----------------------------+ | content | Array | Yes | Content elements | +---------+--------+----------+-----------------------------+ Table 2 Each content element MUST be one of: * *Text span*: Object with a REQUIRED text field (String) and an OPTIONAL style field (String) referencing a named style. Inline style overrides MAY be specified as additional fields (e.g., fontStyle, color). Law & Nandakumar Expires 7 January 2027 [Page 4] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 * *Line break*: Object with the single field br set to true. Example: [ { "m": 1000, "data": { "start": 1000, "end": 4500, "region": "bottom", "content": [ {"text": "Good ", "style": "s1"}, {"text": "morning", "fontStyle": "italic"}, {"br": true}, {"text": "everyone."} ] } } ] 5. Document Mode Document mode preserves the full IMSC1 XML representation for content requiring embedded SMPTE-TT images, complex animation, or styling features beyond cue mode. The m field MUST equal the start value. +==========+========+==========+============================+ | Field | Type | Required | Description | +==========+========+==========+============================+ | start | Number | Yes | Start time in milliseconds | +----------+--------+----------+----------------------------+ | end | Number | Yes | End time in milliseconds | +----------+--------+----------+----------------------------+ | format | String | Yes | "isd" or "fragment" | +----------+--------+----------+----------------------------+ | encoding | String | No | "base64" if Base64 encoded | +----------+--------+----------+----------------------------+ | xml | String | Yes | IMSC1 XML content | +----------+--------+----------+----------------------------+ Table 3 When encoding is absent, the xml field contains plain UTF-8 XML. When set to "base64", the xml field is encoded per Section 4 of [BASE64]. Example: Law & Nandakumar Expires 7 January 2027 [Page 5] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 [ { "m": 5000, "data": { "start": 5000, "end": 8500, "format": "isd", "xml": "..." } } ] 6. Catalog Declaration IMSC1 tracks MUST be declared in the MSF Catalog (Section 5 of [MSF]) with the following track object fields: +===========+=============+================================+ | Field | MSF Section | Requirement | +===========+=============+================================+ | namespace | 5.2.2 | Per [MSF] | +-----------+-------------+--------------------------------+ | name | 5.2.3 | Per [MSF] | +-----------+-------------+--------------------------------+ | packaging | 5.2.4 | MUST be eventtimeline | +-----------+-------------+--------------------------------+ | eventType | 5.2.5 | MUST be urn:msf:captions:imsc1 | +-----------+-------------+--------------------------------+ | mimeType | 5.2.19 | MUST be application/json | +-----------+-------------+--------------------------------+ | lang | 5.2.32 | BCP 47 language tag | +-----------+-------------+--------------------------------+ | depends | 5.2.14 | MUST reference associated | | | | media track(s) | +-----------+-------------+--------------------------------+ Table 4 This specification defines one additional field: * imsc1Mode (String): MUST be present. Value MUST be cue or document. Example: Law & Nandakumar Expires 7 January 2027 [Page 6] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 { "namespace": "broadcast/captions", "name": "captions-en", "packaging": "eventtimeline", "eventType": "urn:msf:captions:imsc1", "mimeType": "application/json", "lang": "en", "depends": ["video"], "imsc1Mode": "cue" } 7. Security Considerations TODO 8. IANA Considerations This document requests registration of the following event type in the "MSF Event Timeline Types" registry established by [MSF]. +========================+===============+ | Event Type | Reference | +========================+===============+ | urn:msf:captions:imsc1 | This document | +------------------------+---------------+ Table 5 9. Normative References [BASE64] Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, . [IMSC1] "W3C, TTML Profiles for Internet Media Subtitles and Captions 1.0.1 (IMSC1)", April 2018, . [JSON] Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, December 2017, . [MSF] Law, W. and S. Nandakumar, "MOQT Streaming Format", Work in Progress, Internet-Draft, draft-ietf-moq-msf-01, 2 June 2026, . Law & Nandakumar Expires 7 January 2027 [Page 7] Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . Acknowledgments TODO Authors' Addresses Will Law Akamai Email: wilaw@akamai.com Suhas Nandakumar Cisco Email: snandaku@cisco.com Law & Nandakumar Expires 7 January 2027 [Page 8]