<?xmlversion="1.0" encoding="utf-8"?> <!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->version='1.0' encoding='utf-8'?> <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> <rfc number="8759" xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-payload-rtp-ttml-06" submissionType="IETF" category="std" xml:lang="en"xmlns:xi="http://www.w3.org/2001/XInclude" consensus="true">consensus="true" obsoletes="" updates="" sortRefs="true" symRefs="true" tocInclude="true"> <front> <title abbrev="RTP Payload for TTML Timed Text">RTP Payload forTTMLTimedText</title><seriesInfo value="draft-ietf-payload-rtp-ttml-06" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>Text Markup Language (TTML)</title> <seriesInfo name="RFC" value="8759"/> <author initials="J." surname="Sandford" fullname="JamesSandford"><organization>BritishSandford"> <organization>British BroadcastingCorporation</organization><address><postal><street>DockCorporation</organization> <address> <postal> <street>Dock House, MediaCityUK</street> <city>Salford</city> <country>United Kingdom</country></postal><phone>+44</postal> <phone>+44 30304 09549</phone> <email>james.sandford@bbc.co.uk</email></address></author></address> </author> <dateyear="2019" month="November" day="19"></date>month="March" year="2020"/> <area>Internet</area> <workgroup>A/V Transport Payloads Workgroup</workgroup> <keyword>subtitles</keyword> <keyword>captions</keyword> <keyword>imsc</keyword> <keyword>media</keyword> <keyword>streaming</keyword> <keyword>sdp</keyword> <keyword>xml</keyword> <abstract> <t>This memo describes a Real-time Transport Protocol (RTP) payload format forTTML,Timed Text Markup Language (TTML), anXML basedXML-based timed text formatfor live and file based workflowsfrom W3C. This payload format is specifically targeted atlivestreaming workflows using TTML.</t> </abstract> </front> <middle> <sectionanchor="introduction"><name>Introduction</name>anchor="introduction"> <name>Introduction</name> <t>TTML (Timed Text MarkupLanguage)<xref target="TTML2"></xref>Language) <xref target="TTML2"/> is a media type for describing timedtexttext, such as closed captions and subtitles in television workflows orbroadcastsbroadcasts, as XML. This document specifies how TTML should be mapped into an RTP stream inlive workflows including, butstreaming workflows, including (but not restrictedto,to) those described in thetelevision broadcast oriented EBU-TTtelevision-broadcast-oriented European Broadcasting Union Timed Text (EBU-TT) Part3<xref target="TECH3370"></xref>3 <xref target="TECH3370"/> specification. This document does not define a media type for TTML but makes use of the existing application/ttml+xml media type <xreftarget="TTML-MTPR"></xref>.</t>target="TTML-MTPR"/>.</t> </section> <sectionanchor="conventions-definitions-and-abbreviations"><name>Conventions, Definitions,anchor="conventions-definitions-and-abbreviations"> <name>Conventions andAbbreviations</name>Definitions</name> <t>Unless otherwise stated, the term"document""document" refers to the TTML document being transmitted in the payload of the RTP packet(s).</t> <t>The term"word""word" refers to a data word aligned to a specified number of bits in a computing sense and not torefer tolinguistic words that might appear in the transported text.</t><t>The<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>","<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>""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP14BCP 14 <xreftarget="RFC2119"></xref>target="RFC2119"/> <xreftarget="RFC8174"></xref>target="RFC8174"/> when, and only when, they appear in all capitals, as shownhere.</t>here. </t> </section> <sectionanchor="media-format-description"><name>Mediaanchor="media-format-description"> <name>Media Format Description</name> <sectionanchor="relation-to-other-text-payload-types"><name>Relationanchor="relation-to-other-text-payload-types"> <name>Relation to Other Text Payload Types</name> <t>Prior payload types for text are not suited to the carriage of closed captions inTelevision Workflows. RFC 4103television workflows. "RTP Payload for TextConversationConversation" <xreftarget="RFC4103"></xref>target="RFC4103"/> is intended for low data rate conversation with its own session management and minimal formatting capabilities.RFC 4734"Definition of Events for Modem, Fax, and Text TelephonySignalsSignals" <xreftarget="RFC4734"></xref>target="RFC4734"/> deals in large parts with the control signalling of facsimile and other systems.RFC 4396"RTP Payload Format for 3rd Generation Partnership Project (3GPP) TimedTextText" <xreftarget="RFC4396"></xref>target="RFC4396"/> describes the carriage of a timed text format with much more restricted formatting capabilities than TTML. The lack of an existing format for TTML or generic XML has necessitated the creation of this payload format.</t> </section> <sectionanchor="ttml2"><name>TTML2</name>anchor="ttml2"> <name>TTML2</name> <t>TTML2 (Timed Text Markup Language, Version2)<xref target="TTML2"></xref>2) <xref target="TTML2"/> is an XML-based markup language for describing textual information with associated timing metadata. One of its primary use cases is the description of subtitles and closed captions. A number of profiles exist that adapt TTML2 for use in specific contexts <xreftarget="TTML-MTPR"></xref>.target="TTML-MTPR"/>. These include bothfile basedfile-based and streaming workflows.</t> </section> </section> <sectionanchor="payload-format"><name>Payloadanchor="payload-format"> <name>Payload Format</name> <t>In addition to the required RTP headers, the payload contains a section for the TTML document being transmitted (User DataWords),Words) and a field for theLengthlength of that data. Each RTP payload contains one or part of one TTML document.</t> <t>A representation of the payload format for TTML is <xreftarget="FigRTPFormat"></xref>.</t>target="FigRTPFormat"/>.</t> <figureanchor="FigRTPFormat"><name>RTPanchor="FigRTPFormat"> <name>RTP Payload Format for TTML </name><sourcecode type="ascii-art"><artwork name="" type="" align="left" alt=""><![CDATA[ 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... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</sourcecode>]]></artwork> </figure> <sectionanchor="rtpHeaderUsage"><name>RTPanchor="rtpHeaderUsage"> <name>RTP Header Usage</name> <t>RTP packet header fieldsSHALL<bcp14>SHALL</bcp14> beinterpretedinterpreted, as perRFC 3550<xreftarget="RFC3550"></xref>,target="RFC3550"/>, with the following specifics:</t> <dlnewline="true">newline="true" spacing="normal"> <dt>Marker Bit (M): 1 bit</dt><dd><t>The Marker Bit<dd>The marker bit is set to"1""1" to indicate the last packet of a document.OtherwiseOtherwise, set to"0"."0". Note: The first packet might also be thelast.</t> </dd>last.</dd> <dt>Timestamp: 32 bits</dt><dd><t>The<dd>The RTP Timestamp encodes the epoch of the TTML document in User Data Words. Further detail on its usage may be found in <xreftarget="payloadProc"></xref>.target="payloadProc"/>. The clock frequency used is dependent on the application and is specified in the media type rateparameterparameter, as per <xreftarget="rate"></xref>.target="rate"/>. Documents spread across multiple packetsMUST<bcp14>MUST</bcp14> use the same timestamp but different consecutive Sequence Numbers. Sequential documentsMUST NOT<bcp14>MUST NOT</bcp14> use the same timestamp. Because packets do not represent any constant duration, the timestamp cannot be used to directly infer packetloss.</t> </dd>loss.</dd> <dt>Reserved: 16 bits</dt><dd><t>These<dd>These bits are reserved for future use andMUST<bcp14>MUST</bcp14> be set to 0x0 and ignoredat receive.</t> </dd>upon reception.</dd> <dt>Length: 16 bits</dt><dd><t>The<dd>The length of User Data Words inbytes.</t> </dd>bytes.</dd> <dt>User Data Words: The length of User Data WordsMUST<bcp14>MUST</bcp14> match the value specified in the Length field</dt><dd><t>User<dd>The User Data Words section contains the text of the whole document being transmitted or a part of the document being transmitted. Documents using character encodings where characters are not represented by a single byteMUST<bcp14>MUST</bcp14> beserializedserialised inbig endianbig-endian order,a.k.a.a.k.a., network byte order. Where a document will not fit within the Path MTU, it may be fragmented across multiple packets. Further detail on fragmentation may be found in <xreftarget="fragmentation"></xref>.</t> </dd>target="fragmentation"/>.</dd> </dl> </section> <sectionanchor="payload-data"><name>Payloadanchor="payload-data"> <name>Payload Data</name> <t>TTML documents define a series of changes to text over time. TTML documents carried in User Data Words are encoded in accordance with one or more of the defined TTML profiles specified in the TTML registry <xreftarget="TTML-MTPR"></xref>.target="TTML-MTPR"/>. These profiles specify the document structure used, systems models, timing, and other considerations. TTML profiles may restrict the complexity of thechangeschanges, and operational requirements may limit the maximum duration of TTML documents by a deployment configuration. Both of these cases are out of scope of this document.</t> <t>Documents carried over RTPMUST<bcp14>MUST</bcp14> conform to the followingprofileprofile, in addition to any others used.</t> </section> </section> <sectionanchor="payload-content-restrictions"><name>Payload content restrictions</name>anchor="payload-content-restrictions"> <name>Payload Content Restrictions</name> <t>This section defines constraints on the content of TTML documents carried over RTP.</t> <t>Multiple TTML subtitle streamsMUST NOT<bcp14>MUST NOT</bcp14> be interleaved in a single RTP stream.</t> <t>The TTML document instance's root <tt>tt</tt> element in the <tt>http://www.w3.org/ns/ttml</tt> namespaceMUST<bcp14>MUST</bcp14> include a <tt>timeBase</tt> attribute in the <tt>http://www.w3.org/ns/ttml#parameter</tt> namespace containing the value <tt>media</tt>.</t> <t>This is equivalent to the TTML2 content profile definition document in <xreftarget="FigContProf"></xref>.</t>target="FigContProf"/>.</t> <figureanchor="FigContProf"><name>TTML2anchor="FigContProf"> <name>TTML2 Content Profile Definition for Documents CarriedOverover RTP </name> <sourcecodetype="xml"><?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:XXXX#content" combine="mostRestrictive"> <features xml:base="http://www.w3.org/ns/ttml/feature/"> <tt:metadata> <ttm:desc>type="xml"> <![CDATA[ <?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></ttm:desc> </tt:metadata> <feature value="required">#timeBase-media</feature> <feature value="prohibited">#timeBase-smpte</feature> <feature value="prohibited">#timeBase-clock</feature> </features> </profile> ]]> </sourcecode> </figure> </section> <sectionanchor="payloadProc"><name>Payload processing requirements</name>anchor="payloadProc"> <name>Payload Processing Requirements</name> <t>This section defines constraints on the processing of the TTML documents carried over RTP.</t> <t>If a TTML document is assessed to beinvalidinvalid, then itMUST<bcp14>MUST</bcp14> be discarded. This includes empty documents,i.e.i.e., those of zero length. When processing a valid document, the following requirements apply.</t> <t>Each TTML document becomes active at its epoch E. EMUST<bcp14>MUST</bcp14> be set to the RTP Timestamp in the header of the RTP packet carrying the TTML document. Computed TTML media times are offset relative toEE, in accordance with Section I.2 of <xreftarget="TTML2"></xref>.</t>target="TTML2"/>.</t> <t>When processing a sequence of TTMLdocumentsdocuments, where each is delivered in the same RTP stream, exactly zero or one documentSHALL<bcp14>SHALL</bcp14> be considered active at each moment in the RTP time line. In the event that a document D<sub>n-1</sub> with E<sub>n-1</sub> is active, and document D<sub>n</sub> is delivered with E<sub>n</sub> where E<sub>n-1</sub> < E<sub>n</sub>, processing of D<sub>n-1</sub>MUST<bcp14>MUST</bcp14> be stopped at E<sub>n</sub> and processing of D<sub>n</sub>MUST<bcp14>MUST</bcp14> begin.</t> <t>When all defined content within a document hasendedended, then processing of the documentMAY<bcp14>MAY</bcp14> be stopped. This can be tested by constructing the intermediate synchronic document sequence from the document, as defined by <xreftarget="TTML2"></xref>.target="TTML2"/>. If the last intermediate synchronic document in the sequence is both active and contains no region elements, then all defined content within the document has ended.</t> <t>As described above, the RTP Timestamp does not specify the exact timing of the media in this payload format. Additionally, documents may be fragmented across multiple packets. This renders the RTCP jitter calculation unusable.</t> <sectionanchor="ttml-processor-profile"><name>TTMLanchor="ttml-processor-profile"> <name>TTML Processorprofile</name>Profile</name> <sectionanchor="feature-extension-designation"><name>Feature extension designation</name>anchor="feature-extension-designation"> <name>Feature Extension Designation</name> <t>This specification defines the following TTML feature extension designation:</t><ul> <li><t>urn:ietf:rfc:XXXX#rtp-relative-media-time</t> </li><ul empty="true"> <li><tt>urn:ietf:rfc:8759#rtp-relative-media-time</tt></li> </ul> <t>The namespace<tt>urn:ietf:rfc:XXXX</tt><tt>urn:ietf:rfc:8759</tt> is as defined by <xreftarget="RFC2648"></xref>.</t>target="RFC2648"/>.</t> <t>A TTML content processor supports the <tt>#rtp-relative-media-time</tt> feature extension if it processes media times in accordance with the payload processing requirements specified in this document,i.e.i.e., that the epoch E is set to the time equivalent to the RTPTimestampTimestamp, as detailed above in <xreftarget="payloadProc"></xref>.</t>target="payloadProc"/>.</t> </section> <sectionanchor="processor-profile-document"><name>Processor profile document</name>anchor="processor-profile-document"> <name>Processor Profile Document</name> <t>The required syntax and semantics declared in the minimal TTML2 processor profile in <xreftarget="FigProcProf"></xref> MUSTtarget="FigProcProf"/> <bcp14>MUST</bcp14> be supported by the receiver, as signified by those <tt>feature</tt> or <tt>extension</tt> elements whose <tt>value</tt> attribute is set to <tt>required</tt>.</t> <figureanchor="FigProcProf"><name>TTML2anchor="FigProcProf"> <name>TTML2 Processor Profile Definition for Processing Documents CarriedOverover RTP </name> <sourcecodetype="xml"><?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:XXXX#processor" combine="mostRestrictive"> <features xml:base="http://www.w3.org/ns/ttml/feature/"> <tt:metadata> <ttm:desc>type="xml"> <![CDATA[ <?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 RFCXXXX. </ttm:desc> </tt:metadata> <feature value="required">#timeBase-media</feature> <feature value="optional">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:XXXX"> <extension restricts="#timeBase-media" value="required"></feature> </features> <extensions xml:base="urn:ietf:rfc:8759"> <extension restricts="#timeBase-media" value="required"> #rtp-relative-media-time</extension> </extensions> </profile></extension> </extensions> </profile> ]]> </sourcecode> </figure> <t>Note that this requirement does not imply that the receiver needs to support either TTML1 or TTML2 profile processing,i.e.i.e., the TTML2 <tt>#profile-full-version-2</tt> feature or any of its dependent features.</t> </section> <sectionanchor="codecs"><name>Processor profile signalling</name>anchor="codecs"> <name>Processor Profile Signalling</name> <t>The <tt>codecs</tt> media type parameterMUST<bcp14>MUST</bcp14> specify at least one processor profile. Short codes for TTML profiles are registered at <xreftarget="TTML-MTPR"></xref>.target="TTML-MTPR"/>. The processor profiles specified in <tt>codecs</tt>MUST<bcp14>MUST</bcp14> be compatible with the processor profile specified in this document. Where multiple options exist in <tt>codecs</tt> for possible processor profile combinations(i.e.(i.e., separated by <tt>|</tt> operator), every permitted optionMUST<bcp14>MUST</bcp14> be compatible with the processor profile specified in this document. Where processor profilesother(other than the one specified in thisdocumentdocument) are advertised in the <tt>codecs</tt> parameter, the requirements of the processor profile specified in this documentMAY<bcp14>MAY</bcp14> besignalledsignalled, additionally using the <tt>+</tt> operator with its registered short code.</t> <t>A processor profile (X) is compatible with the processor profile specified here (P) if X includes all the features and extensions inP, identifiedP (identified by their charactercontent,content) and the <tt>value</tt> attribute of eachisis, atleastleast, as restrictive as the <tt>value</tt> attribute of the feature or extension in P that has the same character content. The term"restrictive""restrictive" here is as defined in<xref target="TTML2"></xref>Section6.</t>6 of <xref target="TTML2"/>.</t> </section> </section> </section> <sectionanchor="payload-examples"><name>Payloadanchor="payload-examples"> <name>Payload Examples</name> <t><xreftarget="FigEGDoc"></xref>target="FigEGDoc"/> is an example of a valid TTML document that may be carried using the payload format described in this document.</t> <figureanchor="FigEGDoc"><name>Exampleanchor="FigEGDoc"> <name>Example TTMLDocument </name>Document</name> <sourcecodetype="xml"><?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>Timedtype="xml"> <![CDATA[ <?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 TTMLExample</ttm:title> <ttm:copyright>TheExample</ttm:title> <ttm:copyright>The Authors (c)2006</ttm:copyright> </metadata> <styling> <!--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">--> <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></p> </div> </body> </tt> ]]> </sourcecode> </figure> </section> <sectionanchor="fragmentation"><name>Fragmentationanchor="fragmentation"> <name>Fragmentation of TTML Documents</name> <t>Many of the use cases for TTML are low bit-rate with RTP packets expected to fit within the Path MTU. However, some documents may exceed the Path MTU. In these cases, they may be split between multiple packets. Where fragmentation is used, the following guidelinesMUST<bcp14>MUST</bcp14> be followed:</t> <ul> <li><t>It isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that documents be fragmented as seldom as possible, i.e., the least possible number of fragments is created out of a document.</t> </li> <li><t>Text stringsMUST<bcp14>MUST</bcp14> 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.</t> </li> <li><t>Document fragmentsSHOULD<bcp14>SHOULD</bcp14> be protected against packet losses. More information can be found in <xreftarget="lossOfData"></xref></t>target="lossOfData"/>.</t> </li> </ul> <t>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.</t> <t>As described in <xreftarget="payloadProc"></xref>,target="payloadProc"/>, only zero or one TTML document may be active at any point in time. As such, thereMUST<bcp14>MUST</bcp14> only be one document transmitted for a given RTP Timestamp. Furthermore, as stated in <xreftarget="rtpHeaderUsage"></xref>,target="rtpHeaderUsage"/>, theMarker Bit MUSTmarker bit <bcp14>MUST</bcp14> be set for a packet containing the last fragment of a document. A packet following one where theMarker Bitmarker bit is set contains the first fragment of a new document. The first fragment might also be the last.</t> </section> <sectionanchor="lossOfData"><name>Protection Againstanchor="lossOfData"> <name>Protection against Loss of Data</name> <t>Consideration must be devoted to keeping loss of documents due to packet loss within acceptable limits. What is deemed acceptable limits isdependantdependent on the TTML profile(s) used and usecasecase, among other things. As such, specific limits are outside the scope of this document.</t> <t>DocumentsMAY<bcp14>MAY</bcp14> be sent without additional protection if end-to-end network conditionsallowguarantee that document losstowill be within acceptable limitsinunder all anticipated load conditions. Where such guarantees cannot be provided, implementationsMUST<bcp14>MUST</bcp14> use a mechanism to protect against packet loss. Potential mechanisms includeFECForward Error Correction (FEC) <xreftarget="RFC5109"></xref>,target="RFC5109"/>, retransmission <xreftarget="RFC4588"></xref>,target="RFC4588"/>, duplication <xreftarget="ST2022-7"></xref>,target="ST2022-7"/>, or an equivalent technique.</t> </section> <sectionanchor="congestion-control-considerations"><name>Congestionanchor="congestion-control-considerations"> <name>Congestion Control Considerations</name> <t>Congestion control for RTPSHALL<bcp14>SHALL</bcp14> be used in accordance with <xreftarget="RFC3550"></xref>,target="RFC3550"/> and with any applicable RTPprofile:profile, e.g., <xreftarget="RFC3551"></xref>.target="RFC3551"/>. "Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions" <xreftarget="RFC8083"></xref>target="RFC8083"/> is an update toRTP"RTP: A Transport Protocol for Real-time Applications" <xreftarget="RFC3550"></xref> thattarget="RFC3550"/>, which defines criteria for when one is required to stop sending RTPPacket Streams.packet streams. Applications implementing this standardMUST<bcp14>MUST</bcp14> comply with <xreftarget="RFC8083"></xref>target="RFC8083"/>, with particular attention paid to Section4.4<xref target="RFC8083" sectionFormat="bare" section="4.4"/> on Media Usability. <xreftarget="RFC8085"></xref>target="RFC8085"/> provides additional information on the best practices for applying congestion control to UDP streams.</t> </section> <sectionanchor="payload-format-parameters"><name>Payloadanchor="payload-format-parameters"> <name>Payload Format Parameters</name> <t>This RTP payload format is identified using the existing application/ttml+xml media type as registered with IANA <xreftarget="IANA"></xref>target="IANA"/> and defined in <xreftarget="TTML-MTPR"></xref>.</t>target="TTML-MTPR"/>.</t> <sectionanchor="rate"><name>Clockanchor="rate"> <name>Clock Rate</name> <t>The default clock rate for TTML over RTP is1000Hz.1000 Hz. The clock rateSHOULD<bcp14>SHOULD</bcp14> 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.</t> <t>When choosing a clock rate, implementers should consider what other media their TTML streams may be used in conjunction with(e.g.(e.g., video or audio). In these situations, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> 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.</t> </section> <sectionanchor="sdp-considerations"><name>SDPanchor="sdp-considerations"> <name>Session Description Protocol (SDP) Considerations</name> <t>The mapping of the application/ttml+xml media type and its parameters <xreftarget="TTML-MTPR"></xref> SHALLtarget="TTML-MTPR"/> <bcp14>SHALL</bcp14> be done according toSection 3 of<xreftarget="RFC4855"></xref>.</t>target="RFC4855" sectionFormat="of" section="3"/>.</t> <ul> <li><t>The type name"application""application" goes in SDP"m=""m=" as the media name.</t> </li> <li><t>The media subtype"ttml+xml""ttml+xml" goes in SDP"a=rtpmap""a=rtpmap" as the encodingname,</t>name.</t> </li> <li><t>The clock rate also goes in"a=rtpmap""a=rtpmap" as the clock rate.</t> </li> </ul> <t>Additionalformat specific parametersformat-specific parameters, as described in the media typespecification SHALLspecification, <bcp14>SHALL</bcp14> be included in the SDP file in"a=fmtp""a=fmtp" as asemicolon separatedsemicolon-separated list of"parameter=value" pairs"parameter=value" pairs, as described in <xreftarget="RFC4855"></xref>.target="RFC4855"/>. The <tt>codecs</tt> parameterMUST<bcp14>MUST</bcp14> be included in the <tt>a=fmtp</tt> line of the SDP file. Specific requirements for the"codecs""codecs" parameter are included in <xreftarget="codecs"></xref>.</t>target="codecs"/>.</t> <sectionanchor="examples"><name>Examples</name>anchor="examples"> <name>Examples</name> <t>A sample SDP mapping is presented in <xreftarget="FigSDP"></xref>.</t>target="FigSDP"/>.</t> <figureanchor="FigSDP"><name>Exampleanchor="FigSDP"> <name>Example SDPmappingMapping </name> <sourcecodetype="text">m=applicationtype="sdp"> <![CDATA[ m=application 30000 RTP/AVP 112 a=rtpmap:112 ttml+xml/90000 a=fmtp:112charset=utf-8;codecs=im1tcharset=utf-8;codecs=im2t ]]> </sourcecode> </figure> <t>In this example, a dynamic payload type 112 is used. The 90 kHz RTP timestamp rate is specified in the"a=rtpmap""a=rtpmap" line after the subtype. The codecs parameter defined in the"a=fmtp""a=fmtp" line indicates that the TTML data conforms toIMSC 1Internet Media and Captions (IMSC) 1.1 Textprofile.</t>profile <xref target="TTML-IMSC1.1"/>.</t> </section> </section> </section> <sectionanchor="iana-considerations"><name>IANAanchor="iana-considerations"> <name>IANA Considerations</name><t>No<t>This document has no IANAaction.</t>actions.</t> </section> <sectionanchor="security"><name>Securityanchor="security"> <name>Security Considerations</name> <t>RTP packets using the payload format defined in this specification are subject to the security considerations discussed in the RTP specification <xreftarget="RFC3550"></xref> ,target="RFC3550"/> and in any applicable RTPprofileprofile, such as RTP/AVP <xreftarget="RFC3551"></xref>,target="RFC3551"/>, RTP/AVPF <xreftarget="RFC4585"></xref>,target="RFC4585"/>, RTP/SAVP <xreftarget="RFC3711"></xref>,target="RFC3711"/>, or RTP/SAVPF <xreftarget="RFC5124"></xref>.target="RFC5124"/>. However, as"Securing"Securing the RTP Protocol Framework: Why RTP Does Not Mandate a Single Media SecuritySolution"Solution" <xreftarget="RFC7202"></xref>target="RFC7202"/> discusses, it is not an RTP payload format's responsibility to discuss or mandate what solutions are used to meet the basic security goalslike(like confidentiality, integrity, and sourceauthenticityauthenticity) for RTP in general. This responsibility lays on anyone using RTP in an application. They can find guidance on available security mechanisms and important considerations in"Options"Options for Securing RTPSessions"Sessions" <xreftarget="RFC7201"></xref>.target="RFC7201"/>. ApplicationsSHOULD<bcp14>SHOULD</bcp14> use one or more appropriate strong security mechanisms. The rest of this Security Considerations section discusses the security impacting properties of the payload format itself.</t> <t>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).</t> <t>This payload format places no specific restrictions on the size of TTML documents that may be transmitted. As such, malicious implementations could be used to perform denial-of-service (DoS) attacks.RFC 4732<xreftarget="RFC4732"></xref>target="RFC4732"/> provides more information on DoS attacks and describes some mitigation strategies. Implementers should take into consideration that the size and frequency of documents transmitted using this format may vary over time. As such, sender implementations should avoid producing streams that exhibit DoS-likebehaviourbehaviour, and receivers should avoid false identification of a legitimate stream as malicious.</t> <t>As with other XML types and as noted inRFC 7303<xreftarget="RFC7303"></xref>, XMLtarget="RFC7303" section="10" sectionFormat="of">"XML MediaTypes, Section 10,Types"</xref>, repeated expansion of maliciously constructed XML entities can be used to consume large amounts of memory, which may cause XML processors in constrained environments to fail.</t> <t>In addition, because of the extensibility features for TTML and of XML in general, it is possible that"application/ttml+xml""application/ttml+xml" may describe content that has security implications beyond those described here. However, TTML does not provide for any sort of active or executable content, and if the processor follows only the normative semantics of the published specification, this content will be outside TTML namespaces and may be ignored. Only in the case where the processor recognizes and processes the additionalcontent,content or where further processing of that content is dispatched to otherprocessors,processors would security issues potentially arise. And in that case, they would fall outside the domain of this RTP payload format and the application/ttml+xml registration document.</t> <t>Although not prohibited, there are no expectations that XML signatures or encryption would normally be employed.</t> <t>Further information related to privacy and security at a document level can be found inTTML 2Appendix P<xref target="TTML2"></xref>.</t> </section> <section anchor="acknowledgements"><name>Acknowledgements</name> <t>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 developmentofthis document. Thanks to the W3C Timed Text Working Group and EBU Timed Text working group for their substantial efforts in developing the timed text formats this payload format is intended to carry.</t><xref target="TTML2"/>.</t> </section> </middle> <back><references><name>Normative<references> <name>Normative References</name> <reference anchor="TECH3370" target="https://tech.ebu.ch/publications/tech3370"> <front><title>TECH 3370 - EBU-TT PART 3: LIVE CONTRIBUTION</title><title>EBU-TT, Part 3, Live Subtitling Applications: System Model and Content Profile for Authoring and Contribution</title> <author> <organization>European Broadcasting Union</organization> </author> <date year="2017"month="May"></date>month="May"/> </front> <seriesInfo name="EBU-TT" value="Part 3"/> <seriesInfo name="Tech" value="3370"/> </reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml"/> <reference anchor="TTML2" target="https://www.w3.org/TR/ttml2/"> <front> <title>Timed Text Markup Language 2 (TTML2)</title><author> <organization>W3C - Timed Text Working Group</organization><author initials="G." surname="Adams" fullname="Glenn Adams" role="editor"> <organization/> </author> <author initials="C." surname="Concolato" fullname="Cyril Concolato" role="editor"/> <date year="2018"month="November"></date>month="November"/> </front> <seriesInfo name="W3C Recommendation" value="REC-ttml2-20181108"/> </reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8083.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4855.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4103.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7303.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml"/> <reference anchor="TTML-MTPR" target="https://www.w3.org/TR/ttml-profile-registry/"> <front> <title>TTML Media Type Definition and Profile Registry</title><author> <organization>W3C - Timed Text Working Group</organization><author initials="G." surname="Adams" fullname="Glenn Adams" role="editor"> <organization/> </author> <author initials="M." surname="Dolan" fullname="Mike Dolan" role="editor"> <organization/> </author> <date year="2019"month="April"></date>month="April"/> </front> <!-- <seriesInfo name="W3C Working Group Note" value="NOTE-ttml-profile-registry-20190411"/> --> <refcontent>W3C Working Group Note</refcontent> </reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <reference anchor="IANA"target="https://www.iana.org/assignments/media-types/media-types.xhtml#application">target="https://www.iana.org/assignments/media-types"> <front><title>IANA - Media Types - Application</title><title>Media Types</title> <author> <organization>IANA</organization> </author><date year="2019" month="February"></date></front> </reference> </references><references><name>Informative<references> <name>Informative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4396.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7201.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2648.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5124.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5109.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4588.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4585.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7202.xml"/> <reference anchor="TTML-IMSC1.1" target="https://www.w3.org/TR/ttml-imsc1.1/"> <front> <title>TTML Profiles for Internet Media Subtitles and Captions 1.1</title> <author initials="P." surname="Lemieux" fullname="Pierre Lemieux" role="editor"/> <date year="2018" month="November"/> </front> <seriesInfo name="W3C Recommendation" value="REC-ttml-imsc1.1-20181108"/> </reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3551.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4732.xml"/> <reference anchor="ST2022-7" target="https://ieeexplore.ieee.org/document/8716822"> <front><title>ST 2022-7:2019 - Seamless<title>Seamless Protection Switching ofSMPTE ST 2022 IPRTP Datagrams</title> <author> <organization>SMPTE</organization> </author> <date year="2019"month="November"></date>month="May"/> </front> <seriesInfo name="ST" value="2022-7:2019"/> <seriesInfo name="DOI" value="10.5594/SMPTE.ST2022-7.2019"/> </reference> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3711.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4734.xml"/> </references> <sectionanchor="rfc-editor-considerations"><name>RFC Editor Considerations</name> <t>Noteanchor="acknowledgements" numbered="false"> <name>Acknowledgements</name> <t>Thanks toRFC Editor: This section may be removed after carrying out all<contact fullname="Nigel Megitt"/>, <contact fullname="James Gruessing"/>, <contact fullname="Robert Wadge"/>, <contact fullname="Andrew Bonney"/>, <contact fullname="James Weaver"/>, <contact fullname="John Fletcher"/>, <contact fullname="Frans de Jong"/>, and <contact fullname="Willem Vermost"/> for their valuable feedback throughout theinstructionsdevelopment of thissection.</t> <t>The namespace <tt>urn:ietf:rfc:XXXX</tt> isdocument. Thanks tobe replaced withthenamespaceW3C Timed Text Working Group and EBU Timed Text Working Group forthis document once it has received an RFC number.</t> <t><tt>RFC XXXX</tt>their substantial efforts in<xref target="FigProcProf"></xref> is to be replaced withdeveloping theRFC number fortimed text format thisdocument.</t>payload format is intended to carry.</t> </section> </back> </rfc>