Internet-Draft IMSC1 Packaging for MOQT Streaming Forma July 2026
Law & Nandakumar Expires 7 January 2027 [Page]
Workgroup:
Media Over QUIC
Internet-Draft:
draft-law-moq-imsc1-msf-00
Published:
Intended Status:
Informational
Expires:
Authors:
W. Law
Akamai
S. Nandakumar
Cisco

IMSC1 Packaging for MOQT Streaming Format

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.

Table of Contents

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.

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:

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:

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.

Table 1
Field Type Required Description
profile String Yes IMSC1 profile URI
styles Object No Named style definitions
regions Object No Named region definitions

The data field MUST contain an init object with the fields above:

[
    {
        "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 <p> element to JSON. The m field MUST equal the start value.

Table 2
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

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).

  • 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.

Table 3
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

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:

[
    {
        "m": 5000,
        "data": {
            "start": 5000,
            "end": 8500,
            "format": "isd",
            "xml": "<tt xml:lang=\"en\" xmlns=\"http://www.w3.org/ns/ttml\">...</tt>"
        }
    }
]

6. Catalog Declaration

IMSC1 tracks MUST be declared in the MSF Catalog (Section 5 of [MSF]) with the following track object fields:

Table 4
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)

This specification defines one additional field:

Example:

{
    "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].

Table 5
Event Type Reference
urn:msf:captions:imsc1 This document

9. Normative References

[BASE64]
Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, DOI 10.17487/RFC4648, , <https://www.rfc-editor.org/rfc/rfc4648>.
[IMSC1]
"W3C, TTML Profiles for Internet Media Subtitles and Captions 1.0.1 (IMSC1)", , <https://www.w3.org/TR/ttml-imsc1/>.
[JSON]
Bray, T., Ed., "The JavaScript Object Notation (JSON) Data Interchange Format", STD 90, RFC 8259, DOI 10.17487/RFC8259, , <https://www.rfc-editor.org/rfc/rfc8259>.
[MSF]
Law, W. and S. Nandakumar, "MOQT Streaming Format", Work in Progress, Internet-Draft, draft-ietf-moq-msf-01, , <https://datatracker.ietf.org/doc/html/draft-ietf-moq-msf-01>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.

Acknowledgments

TODO

Authors' Addresses

Will Law
Akamai
Suhas Nandakumar
Cisco