RFC 8759

RTP Payload for Timed Text Markup Language (TTML)

πŸ“… published March 2020, from ietf

πŸ“¬ RFC 8759: RTP Payload for Timed Text Markup Language (TTML) πŸŽ€

okay bestie, so this is an Internet Standards Track doc πŸ’… from the IETF (Internet Engineering Task Force) 🌸, written by J. Sandford of the British Broadcasting Corporation πŸ“Ί, dated March 2020 ✨. It's published as RFC 8759 and it doesn't obsolete or update any other RFCs (no drama, no sequels πŸ™ˆ). Its ISSN is 2070-1721 and the full info lives at https://www.rfc-editor.org/info/rfc8759 πŸ”—.

The vibe of the whole thing: how do you carry TTML (captions and subtitles in XML πŸ“) over RTP streams? Like, literally the whole point πŸ¦‹.

Abstract

this memo describes an RTP (Real-time Transport Protocol) payload format for TTML (Timed Text Markup Language), which is an XML-based timed text format from W3C 🌈. this payload format is specifically built for streaming workflows using TTML πŸ’œ.

Status of This Memo

this is an Internet Standards Track document πŸ”₯. it's a product of the IETF and it represents the consensus of the IETF community 🫢. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG) πŸ‘‘. more info on Internet Standards is in Section 2 of RFC 7841 ✨.

for current status, errata, and how to give feedback, check https://www.rfc-editor.org/info/rfc8759 🧚.

Copyright (c) 2020 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 πŸ“œ. please review these carefully because they describe your rights and restrictions πŸ™ˆ. code components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they're provided without warranty as described in the Simplified BSD License ⭐.

Table of Contents

1.  Introduction
2.  Conventions and Definitions
3.  Media Format Description
  3.1.  Relation to Other Text Payload Types
  3.2.  TTML2
4.  Payload Format
  4.1.  RTP Header Usage
  4.2.  Payload Data
5.  Payload Content Restrictions
6.  Payload Processing Requirements
  6.1.  TTML Processor Profile
    6.1.1.  Feature Extension Designation
    6.1.2.  Processor Profile Document
    6.1.3.  Processor Profile Signalling
7.  Payload Examples
8.  Fragmentation of TTML Documents
9.  Protection against Loss of Data
10. Congestion Control Considerations
11. Payload Format Parameters
  11.1.  Clock Rate
  11.2.  Session Description Protocol (SDP) Considerations
    11.2.1.  Examples
12. IANA Considerations
13. Security Considerations
14. Normative References
15. Informative References
Acknowledgements
Author's Address

1. Introduction 🌸

okay so TTML (Timed Text Markup Language) [TTML2] is a media type for describing timed text πŸ“, like closed captions and subtitles in TV workflows or broadcasts, and it's all XML πŸ’…. this doc explains how TTML should be mapped into an RTP stream in streaming workflows 🌊, including (but not limited to!) the ones described in the television-broadcast-oriented European Broadcasting Union Timed Text (EBU-TT) Part 3 [TECH3370] spec πŸ“Ί. this doc does not define a media type for TTML πŸ™…β€β™€οΈ, it just uses the existing application/ttml+xml media type [TTML-MTPR] ✨.

2. Conventions and Definitions πŸŽ€

unless stated otherwise, "document" means the TTML document being sent in the payload of the RTP packet(s) πŸ“„.

"word" means a data word aligned to a specified number of bits in a computing sense πŸ’», NOT linguistic words that might show up in the text πŸ™ˆ.

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. Media Format Description πŸ¦‹

3.1. Relation to Other Text Payload Types πŸ’œ

other text payload types just aren't built for closed captions in TV workflows πŸ“Ί. "RTP Payload for Text Conversation" [RFC4103] is for low data rate conversation with its own session management and minimal formatting πŸ’¬. "Definition of Events for Modem, Fax, and Text Telephony Signals" [RFC4734] is mostly about control signalling for facsimile and other systems πŸ“ . "RTP Payload Format for 3rd Generation Partnership Project (3GPP) Timed Text" [RFC4396] carries a timed text format with way more restricted formatting than TTML πŸ₯². so since there's no existing format for TTML or generic XML, this payload format had to be created 🫢.

3.2. TTML2 🌈

TTML2 (Timed Text Markup Language, Version 2) [TTML2] is an XML-based markup language for describing textual information with associated timing metadata ⏱️. one of its main use cases is describing subtitles and closed captions πŸ’–. a bunch of profiles exist that adapt TTML2 for specific contexts [TTML-MTPR] ✨, including both file-based and streaming workflows 🌊.

4. Payload Format 🧚

in addition to the required RTP headers, the payload has a section for the TTML document being sent (User Data Words) and a field for the length of that data πŸ“¦. each RTP payload contains one part of one TTML document, or one whole document πŸ’….

here's the payload format for TTML, Figure 1 πŸ‘‡

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X| CC    |M|    PT       |        Sequence Number        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Synchronization Source (SSRC) Identifier            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Reserved            |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       User Data Words...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: RTP Payload Format for TTML πŸŽ€

4.1. RTP Header Usage 🫧

RTP packet header fields SHALL be interpreted, as per [RFC3550], with the following specifics πŸ’…:

Marker Bit (M): 1 bit 🚩 the marker bit is set to "1" to indicate the last packet of a document 🏁. otherwise, it's set to "0" πŸ™ƒ. note: the first packet might also be the last 🀯.

Timestamp: 32 bits ⏰ the RTP Timestamp encodes the epoch of the TTML document in User Data Words πŸ•°οΈ. more detail on how it's used is in Section 6 πŸ“–. the clock frequency depends on the application and is specified in the media type rate parameter, per Section 11.1 🎚️. documents spread across multiple packets MUST use the same timestamp but different consecutive Sequence Numbers πŸ”’. sequential documents MUST NOT use the same timestamp 🚫. because packets don't represent any constant duration, the timestamp can't be used to directly infer packet loss πŸ’€.

Reserved: 16 bits πŸ«₯ these bits are reserved for future use and MUST be set to 0x0 and ignored upon reception πŸ™ˆ.

Length: 16 bits πŸ“ the length of User Data Words in bytes πŸ’œ.

User Data Words: The length of User Data Words MUST match the value specified in the Length field πŸ”₯ the User Data Words section contains the text of the whole document being sent, or a part of it ✨. documents using character encodings where characters aren't represented by a single byte MUST be serialised in big-endian order, a.k.a. network byte order 🌐. where a document won't fit within the Path MTU, it MAY be fragmented across multiple packets 🧩. more detail on fragmentation is in Section 8 πŸ¦‹.

4.2. Payload Data πŸ“

TTML documents define a series of changes to text over time ⏳. TTML documents carried in User Data Words are encoded according to one or more of the defined TTML profiles in the TTML registry [TTML-MTPR] πŸ“š. these profiles specify the document structure, systems models, timing, and other considerations πŸ› οΈ. TTML profiles may restrict how complex the changes are, and operational requirements may limit the maximum duration of TTML documents by deployment configuration πŸ™ƒ. both of these cases are out of scope for this document πŸ™…β€β™€οΈ.

documents carried over RTP MUST conform to the following profile, in addition to any others used πŸ’–.

5. Payload Content Restrictions 🌷

this section defines constraints on the content of TTML documents carried over RTP πŸ“‹.

multiple TTML subtitle streams MUST NOT be interleaved in a single RTP stream 🚫.

the TTML document instance's root "tt" element in the "http://www.w3.org/ns/ttml" namespace MUST include a "timeBase" attribute in the "http://www.w3.org/ns/ttml#parameter" namespace containing the value "media" 🎬.

this is equivalent to the TTML2 content profile definition document in Figure 2 🧁.

<?xml version="1.0" encoding="UTF-8"?>
<profile xmlns="http://www.w3.org/ns/ttml#parameter"
    xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
    xmlns:tt="http://www.w3.org/ns/ttml"
    type="content"
    designator="urn:ietf:rfc:8759#content"
    combine="mostRestrictive">
    <features xml:base="http://www.w3.org/ns/ttml/feature/">
        <tt:metadata>
            <ttm:desc>
                This document is a minimal TTML2 content profile
                definition document intended to express the
                minimal requirements to apply when carrying TTML
                over RTP.
            </ttm:desc>
        </tt:metadata>
        <feature value="required">#timeBase-media</feature>
        <feature value="prohibited">#timeBase-smpte</feature>
        <feature value="prohibited">#timeBase-clock</feature>
    </features>
</profile>

Figure 2: TTML2 Content Profile Definition for Documents Carried over RTP 🌈


✨ that's part 1 done bestie! sections 6 through 15 plus the references, acknowledgements and author's address are still coming in the next parts πŸ’œπŸ«Ά

6. Payload Processing Requirements ✨

okay so this section is where we set the ground rules for actually processing the TTML documents that come over RTP πŸ’… it's all constraints, bestie, but they matter a lot 🫢

If a TTML document is assessed to be invalid, then it MUST be discarded. no cap, that includes empty documents, the ones with zero length πŸ™ˆ When you're processing a valid document, these requirements apply.

Each TTML document becomes active at its epoch E. E MUST be set to the RTP Timestamp in the header of the RTP packet carrying the TTML document. Computed TTML media times are offset relative to E, following Section I.2 of [TTML2] ⏰

When you're processing a sequence of TTML documents delivered in the same RTP stream, exactly zero or one document SHALL be considered active at each moment in the RTP time line. So if a document D_(n-1) with E_(n-1) is active, and a document D_(n) shows up with E_(n) where E_(n-1) < E_(n), then processing of D_(n-1) MUST be stopped at E_(n) and processing of D_(n) MUST begin. one in, one out, periodt πŸ’–

When all the defined content within a document has ended, processing of the document MAY be stopped. You can check this by building the intermediate synchronic document sequence from the document, as defined by [TTML2]. If the last intermediate synchronic document in that sequence is both active and contains no region elements, then all the defined content within the document has ended πŸŽ€

As described above, the RTP Timestamp does not specify the exact timing of the media in this payload format. Also, documents may be fragmented across multiple packets. This renders the RTCP jitter calculation unusable 😭

6.1. TTML Processor Profile

6.1.1. Feature Extension Designation

This specification defines the following TTML feature extension designation:

   "urn:ietf:rfc:8759#rtp-relative-media-time"

The namespace "urn:ietf:rfc:8759" is as defined by [RFC2648] 🌸

A TTML content processor supports the "#rtp-relative-media-time" feature extension if it processes media times in accordance with the payload processing requirements specified in this document. In other words, the epoch E is set to the time equivalent to the RTP Timestamp, as detailed above in Section 6 ✨

6.1.2. Processor Profile Document

The required syntax and semantics declared in the minimal TTML2 processor profile in Figure 3 MUST be supported by the receiver, as signified by those "feature" or "extension" elements whose "value" attribute is set to "required" πŸ‘‘

   <?xml version="1.0" encoding="UTF-8"?>
   <profile xmlns="http://www.w3.org/ns/ttml#parameter"
       xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
       xmlns:tt="http://www.w3.org/ns/ttml"
       type="processor"
       designator="urn:ietf:rfc:8759#processor"
       combine="mostRestrictive">
       <features xml:base="http://www.w3.org/ns/ttml/feature/">
           <tt:metadata>
               <ttm:desc>
                   This document is a minimal TTML2 processor profile
                   definition document intended to express the
                   minimal requirements of a TTML processor able to
                   process TTML delivered over RTP according to
                   RFC 8759.
               </ttm:desc>
           </tt:metadata>
           <feature value="required">#timeBase-media</feature>
           <feature value="optional">
               #profile-full-version-2
           </feature>
       </features>
       <extensions xml:base="urn:ietf:rfc:8759">
           <extension restricts="#timeBase-media" value="required">
               #rtp-relative-media-time
           </extension>
       </extensions>
   </profile>

        Figure 3: TTML2 Processor Profile Definition for Processing
                         Documents Carried over RTP

Note that this requirement does not imply that the receiver needs to support either TTML1 or TTML2 profile processing. That means the TTML2 "#profile-full-version-2" feature, or any of its dependent features, is not required πŸ™ƒ

6.1.3. Processor Profile Signalling

The "codecs" media type parameter MUST specify at least one processor profile. Short codes for TTML profiles are registered at [TTML-MTPR]. The processor profiles specified in "codecs" MUST be compatible with the processor profile specified in this document. Where multiple options exist in "codecs" for possible processor profile combinations (i.e., separated by "|" operator), every permitted option MUST be compatible with the processor profile specified in this document. Where processor profiles (other than the one specified in this document) are advertised in the "codecs" parameter, the requirements of the processor profile specified in this document MAY be signalled, additionally using the "+" operator with its registered short code 🧚

A processor profile (X) is compatible with the processor profile specified here (P) if X includes all the features and extensions in P (identified by their character content), and the "value" attribute of each is, at least, as restrictive as the "value" attribute of the feature or extension in P that has the same character content. The term "restrictive" here is as defined in Section 6 of [TTML2] πŸ’œ

7. Payload Examples πŸ“

Figure 4 is an example of a valid TTML document that may be carried using the payload format described in this document.

   <?xml version="1.0" encoding="UTF-8"?>
   <tt xml:lang="en"
    xmlns="http://www.w3.org/ns/ttml"
    xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
    xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
    xmlns:tts="http://www.w3.org/ns/ttml#styling"
    ttp:timeBase="media"
    >
     <head>
       <metadata>
         <ttm:title>Timed Text TTML Example</ttm:title>
         <ttm:copyright>The Authors (c) 2006</ttm:copyright>
       </metadata>
       <styling>
         <!--
           s1 specifies default color, font, and text alignment
         -->
         <style xml:id="s1"
           tts:color="white"
           tts:fontFamily="proportionalSansSerif"
           tts:fontSize="100%"
           tts:textAlign="center"
         />
       </styling>
       <layout>
         <region xml:id="subtitleArea"
           style="s1"
           tts:extent="78% 11%"
           tts:padding="1% 5%"
           tts:backgroundColor="black"
           tts:displayAlign="after"
         />
       </layout>
     </head>
     <body region="subtitleArea">
       <div>
         <p xml:id="subtitle1" dur="5.0s" style="s1">
           How truly delightful!
         </p>
       </div>
     </body>
   </tt>

                      Figure 4: Example TTML Document

8. Fragmentation of TTML Documents 🧩

Lots of TTML use cases are low bit-rate, with RTP packets expected to fit within the Path MTU. However, some documents may exceed the Path MTU. In those cases, they may be split between multiple packets. Where fragmentation is used, the following guidelines MUST be followed:

  • It is RECOMMENDED that documents be fragmented as seldom as possible, i.e., the least possible number of fragments is created out of a document.
  • Text strings MUST split at character boundaries. This enables decoding of partial documents. As a consequence, document fragmentation requires knowledge of the UTF-8/UTF-16 encoding formats to determine character boundaries.
  • Document fragments SHOULD be protected against packet losses. More information can be found in Section 9.

When a document spans more than one RTP packet, the entire document is obtained by concatenating User Data Words from each consecutive contributing packet in ascending order of Sequence Number πŸ”—

As described in Section 6, only zero or one TTML document may be active at any point in time. As such, there MUST only be one document transmitted for a given RTP Timestamp. Furthermore, as stated in Section 4.1, the marker bit MUST be set for a packet containing the last fragment of a document. A packet following one where the marker bit is set contains the first fragment of a new document. The first fragment might also be the last 🌈

9. Protection against Loss of Data πŸ›‘οΈ

Consideration must be devoted to keeping loss of documents due to packet loss within acceptable limits. What counts as acceptable limits depends on the TTML profile(s) used and the use case, among other things. As such, specific limits are outside the scope of this document.

Documents MAY be sent without additional protection if end-to-end network conditions guarantee that document loss will be within acceptable limits under all anticipated load conditions. Where such guarantees cannot be provided, implementations MUST use a mechanism to protect against packet loss. Potential mechanisms include Forward Error Correction (FEC) [RFC5109], retransmission [RFC4588], duplication [ST2022-7], or an equivalent technique πŸ¦‹

10. Congestion Control Considerations 🚦

Congestion control for RTP SHALL be used in accordance with [RFC3550] and with any applicable RTP profile, e.g., [RFC3551]. "Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions" [RFC8083] is an update to "RTP: A Transport Protocol for Real-time Applications" [RFC3550], which defines criteria for when one is required to stop sending RTP packet streams. Applications implementing this standard MUST comply with [RFC8083], with particular attention paid to Section 4.4 on Media Usability. [RFC8085] provides additional information on the best practices for applying congestion control to UDP streams πŸ“‘

11. Payload Format Parameters πŸŽ€

This RTP payload format is identified using the existing application/ttml+xml media type, as registered with IANA [IANA] and defined in [TTML-MTPR] πŸ’…

11.1. Clock Rate ⏱️

The default clock rate for TTML over RTP is 1000 Hz. The clock rate SHOULD be included in any advertisements of the RTP stream where possible. This parameter has not been added to the media type definition, as it is not applicable to TTML usage other than within RTP streams. In other contexts, timing is defined within the TTML document.

When choosing a clock rate, implementers should consider what other media their TTML streams may be used in conjunction with (e.g., video or audio). In these situations, it is RECOMMENDED that streams use the same clock source and clock rate as the related media. As TTML streams may be aperiodic, implementers should also consider the frequency range over which they expect packets to be sent and the temporal resolution required 🌟

11.2. Session Description Protocol (SDP) Considerations πŸ“

The mapping of the application/ttml+xml media type and its parameters [TTML-MTPR] SHALL be done according to Section 3 of [RFC4855].

  • The type name "application" goes in SDP "m=" as the media name.
  • The media subtype "ttml+xml" goes in SDP "a=rtpmap" as the encoding name.
  • The clock rate also goes in "a=rtpmap" as the clock rate.

Additional format-specific parameters, as described in the media type specification, SHALL be included in the SDP file in "a=fmtp" as a semicolon-separated list of "parameter=value" pairs, as described in [RFC4855]. The "codecs" parameter MUST be included in the "a=fmtp" line of the SDP file. Specific requirements for the "codecs" parameter are included in Section 6.1.3 ✨

11.2.1. Examples ✨

Okay bestie, here's a sample SDP mapping, Figure 5 πŸ’–

m=application 30000 RTP/AVP 112
a=rtpmap:112 ttml+xml/90000
a=fmtp:112 charset=utf-8;codecs=im2t

                    Figure 5: Example SDP Mapping

So in this example, a dynamic payload type 112 is used πŸ¦‹. The 90 kHz RTP timestamp rate is specified in the a=rtpmap line after the subtype ⏰. Then the codecs parameter in the a=fmtp line tells you the TTML data conforms to the Internet Media and Captions (IMSC) 1.1 Text profile [TTML-IMSC1.1] πŸŽ€.

12. IANA Considerations 🌸

This document has no IANA actions. Nothing to register here, bestie 🫢

13. Security Considerations πŸ”’

Okay, this section is serious but also kind of iconic, so let's go πŸ’…

RTP packets using this payload format are subject to the security considerations in the RTP specification [RFC3550] and in any applicable RTP profile, like RTP/AVP [RFC3551], RTP/AVPF [RFC4585], RTP/SAVP [RFC3711], or RTP/SAVPF [RFC5124] ✨.

But here's the tea: as "Securing the RTP Protocol Framework: Why RTP Does Not Mandate a Single Media Security Solution" [RFC7202] explains, it's not a payload format's job to pick or mandate the solutions that meet the basic security goals (like confidentiality, integrity, and source authenticity) for RTP in general πŸ™…β€β™€οΈ. That responsibility lands on whoever is using RTP in their application. If you want guidance on mechanisms and important things to consider, check out "Options for Securing RTP Sessions" [RFC7201] πŸ“–.

Applications SHOULD use one or more appropriate strong security mechanisms πŸ”. The rest of this section talks about the security-impacting properties of the payload format itself 🧚.

To avoid potential buffer overflow attacks, receivers should take care to validate that the User Data Words in the RTP payload are of the appropriate length (using the Length field) πŸ›‘οΈ.

This payload format places no specific restrictions on the size of TTML documents that may be transmitted. So yeah, malicious implementations could be used to perform denial-of-service (DoS) attacks 😭. [RFC4732] has more info on DoS attacks and describes some mitigation strategies πŸ’œ. Implementers should keep in mind that the size and frequency of documents sent using this format may vary over time. So sender implementations should avoid producing streams that show DoS-like behaviour, and receivers should avoid falsely identifying a legitimate stream as malicious πŸ™ˆ.

Heads up: DoS-like behaviour from a sender and falsely flagging a legit stream are both things to avoid. Be the friend who doesn't cause drama and doesn't accuse people unfairly πŸ’€

As with other XML types, and as noted in Section 10 of "XML Media Types" [RFC7303], repeated expansion of maliciously constructed XML entities can be used to consume large amounts of memory. That can make XML processors in constrained environments fail πŸ₯².

Because of the extensibility features for TTML and of XML in general, it's possible that "application/ttml+xml" may describe content with security implications beyond those described here πŸ‘€. However, TTML doesn't provide for any sort of active or executable content. If the processor only follows the normative semantics of the published specification, this content will be outside TTML namespaces and may be ignored 🌈. Security issues would only potentially come up if the processor recognises and processes the additional content, or if further processing of that content is dispatched to other processors. And in that case, those issues would fall outside the domain of this RTP payload format and the "application/ttml+xml" registration document 🫣.

Although not prohibited, there are no expectations that XML signatures or encryption would normally be employed πŸ”.

Further information related to privacy and security at a document level can be found in Appendix P of [TTML2] πŸ“.

14. Normative References πŸ“š

[IANA]     IANA, "Media Types",
           <https://www.iana.org/assignments/media-types>.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119,
           DOI 10.17487/RFC2119, March 1997,
           <https://www.rfc-editor.org/info/rfc2119>.

[RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
           Jacobson, "RTP: A Transport Protocol for Real-Time
           Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
           July 2003, <https://www.rfc-editor.org/info/rfc3550>.

[RFC4103]  Hellstrom, G. and P. Jones, "RTP Payload for Text
           Conversation", RFC 4103, DOI 10.17487/RFC4103, June 2005,
           <https://www.rfc-editor.org/info/rfc4103>.

[RFC4855]  Casner, S., "Media Type Registration of RTP Payload
           Formats", RFC 4855, DOI 10.17487/RFC4855, February 2007,
           <https://www.rfc-editor.org/info/rfc4855>.

[RFC7303]  Thompson, H. and C. Lilley, "XML Media Types", RFC 7303,
           DOI 10.17487/RFC7303, July 2014,
           <https://www.rfc-editor.org/info/rfc7303>.

[RFC8083]  Perkins, C. and V. Singh, "Multimedia Congestion Control:
           Circuit Breakers for Unicast RTP Sessions", RFC 8083,
           DOI 10.17487/RFC8083, March 2017,
           <https://www.rfc-editor.org/info/rfc8083>.

[RFC8085]  Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage
           Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085,
           March 2017, <https://www.rfc-editor.org/info/rfc8085>.

[RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
           2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
           May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[TECH3370] European Broadcasting Union, "EBU-TT, Part 3, Live
           Subtitling Applications: System Model and Content Profile
           for Authoring and Contribution", EBU-TT Part 3, Tech 3370,
           May 2017, <https://tech.ebu.ch/publications/tech3370>.

[TTML-MTPR]
           Adams, G., Ed. and M. Dolan, Ed., "TTML Media Type
           Definition and Profile Registry", W3C Working Group Note,
           April 2019,
           <https://www.w3.org/TR/ttml-profile-registry/>.

[TTML2]    Adams, G., Ed. and C. Concolato, Ed., "Timed Text Markup
           Language 2 (TTML2)", W3C Recommendation REC-
           ttml2-20181108, November 2018,
           <https://www.w3.org/TR/ttml2/>.

15. Informative References 🧠

[RFC2648]  Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
           DOI 10.17487/RFC2648, August 1999,
           <https://www.rfc-editor.org/info/rfc2648>.

[RFC3551]  Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
           Video Conferences with Minimal Control", STD 65, RFC 3551,
           DOI 10.17487/RFC3551, July 2003,
           <https://www.rfc-editor.org/info/rfc3551>.

[RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
           Norrman, "The Secure Real-time Transport Protocol (SRTP)",
           RFC 3711, DOI 10.17487/RFC3711, March 2004,
           <https://www.rfc-editor.org/info/rfc3711>.

[RFC4396]  Rey, J. and Y. Matsui, "RTP Payload Format for 3rd
           Generation Partnership Project (3GPP) Timed Text",
           RFC 4396, DOI 10.17487/RFC4396, February 2006,
           <https://www.rfc-editor.org/info/rfc4396>.

[RFC4585]  Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
           "Extended RTP Profile for Real-time Transport Control
           Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
           DOI 10.17487/RFC4585, July 2006,
           <https://www.rfc-editor.org/info/rfc4585>.

[RFC4588]  Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
           Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
           DOI 10.17487/RFC4588, July 2006,
           <https://www.rfc-editor.org/info/rfc4588>.

[RFC4732]  Handley, M., Ed., Rescorla, E., Ed., and IAB, "Internet
           Denial-of-Service Considerations", RFC 4732,
           DOI 10.17487/RFC4732, December 2006,
           <https://www.rfc-editor.org/info/rfc4732>.

[RFC4734]  Schulzrinne, H. and T. Taylor, "Definition of Events for
           Modem, Fax, and Text Telephony Signals", RFC 4734,
           DOI 10.17487/RFC4734, December 2006,
           <https://www.rfc-editor.org/info/rfc4734>.

[RFC5109]  Li, A., Ed., "RTP Payload Format for Generic Forward Error
           Correction", RFC 5109, DOI 10.17487/RFC5109, December
           2007, <https://www.rfc-editor.org/info/rfc5109>.

[RFC5124]  Ott, J. and E. Carrara, "Extended Secure RTP Profile for
           Real-time Transport Control Protocol (RTCP)-Based Feedback
           (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February
           2008, <https://www.rfc-editor.org/info/rfc5124>.

[RFC7201]  Westerlund, M. and C. Perkins, "Options for Securing RTP
           Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014,
           <https://www.rfc-editor.org/info/rfc7201>.

[RFC7202]  Perkins, C. and M. Westerlund, "Securing the RTP
           Framework: Why RTP Does Not Mandate a Single Media
           Security Solution", RFC 7202, DOI 10.17487/RFC7202, April
           2014, <https://www.rfc-editor.org/info/rfc7202>.

[ST2022-7] SMPTE, "Seamless Protection Switching of RTP Datagrams",
           ST 2022-7:2019, DOI 10.5594/SMPTE.ST2022-7.2019, May 2019,
           <https://ieeexplore.ieee.org/document/8716822>.

[TTML-IMSC1.1]
           Lemieux, P., Ed., "TTML Profiles for Internet Media
           Subtitles and Captions 1.1", W3C Recommendation REC-ttml-
           imsc1.1-20181108, November 2018,
           <https://www.w3.org/TR/ttml-imsc1.1/>.

Acknowledgements πŸ’—

Huge thanks to Nigel Megitt, James Gruessing, Robert Wadge, Andrew Bonney, James Weaver, John Fletcher, Frans de Jong, and Willem Vermost for their valuable feedback throughout the development of this document πŸ™Œ. Thanks also to the W3C Timed Text Working Group and EBU Timed Text Working Group for their substantial efforts in developing the timed text format this payload format is intended to carry ✨.

Author's Address βœ‰οΈ

James Sandford
British Broadcasting Corporation
Dock House, MediaCityUK
Salford
United Kingdom

Phone: +44 30304 09549
Email: james.sandford@bbc.co.uk
πŸ“¦ where this page comes from