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,