Timed Text Markup Language (TTML)
- .ttml
- .xml
- .dfxp
- Read
- Write
Closed Caption Converter reads and writes TTML files. Convert TTML to and from 56 other caption and subtitle formats in the web app, with the REST API, or offline with the CLI.
What is a TTML file?
TTML (Timed Text Markup Language) is the W3C’s XML standard for captions and subtitles. TTML1 became a W3C Recommendation in 2010, and TTML2 followed in 2018. TTML is less a single file format than a family: SMPTE-TT, IMSC, EBU-TT, DFXP, Apple’s iTT and the Netflix timed text profiles are all built on it.
A TTML document has a <tt> root, a <head> that defines styles and layout regions, and a <body> of <div>, <p> and <span> elements with begin, end or dur timing. Times can be clock values (00:00:01.500), frames (00:00:01:12 with a declared ttp:frameRate), or ticks against a ttp:tickRate. Styles cover font, color, background, alignment and more. Regions place text anywhere on screen with tts:origin and tts:extent.
That flexibility is TTML’s strength and its main pitfall. Two valid TTML files can use completely different timing, styling and layout conventions, and most delivery specifications only accept a tightly constrained profile. Choosing the right target profile matters as much as the conversion itself.
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="white" tts:textAlign="center"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 15%"/>
</layout>
</head>
<body style="s1" region="bottom">
<div>
<p begin="00:00:01.000" end="00:00:03.500">Where were you last night?</p>
</div>
</body>
</tt>TTML profiles in Closed Caption Converter
Besides the base TTML profile, Closed Caption Converter reads and writes delivery-specific TTML variants. These include DFXP, SMPTE TTML, IMSC 1.0 Basic, IMSC Text Captions and Subtitles, EBU-TT, iTT, Netflix DFXP and Netflix TT, Sandflow TTML, YouTube TTML and several encode-only broadcaster profiles. When you are delivering to a platform, choose the profile named for it rather than generic TTML.
Convert TTML files
Every readable format converts to every writable format, through the web app, the API or the CLI.
Popular TTML conversions
Convert TTML to
- Cavena 890
- iTT
- Closed Caption Creator Project
- Caption Inc.
- LMS Transcript
- JSON
- Substation Alpha
- Advanced Substation Alpha
- SCC
- MCC
- Rich Text Format
- SRT
- WebVTT
- Subviewer
- Sofni
- Micro DVD
- DVD Architect
- Avid DS
- Adobe Encore
- Apple DVD Studio Pro
- EZ Title
- PowerPixel Format
- ProCap Transfer
- QuickTime Text
- Eclipse
- EBU-STL
- Spruce STL
- PAC
- Cheetah (binary)
- Videotron Lambda
- NCI Caption
- Cheetah (ASCII Text)
- DFXP
- DLP Cinema
- Netflix TT Captions
- Netflix TT Subtitles
- MAGIC TT
- EBU-TT
- SMPTE-TTML
- IMSC Text Captions
- IMSC Text Subtitles
- DCDM Subtitle
- Verizon TTML
- Bento MP4-DASH IMSC
- Netflix DFXP
- Synchronized Accessible Media Interchange
- Comma-Separated Values
- As-Broadcast Dialog List
Convert to TTML from
- Cavena 890
- iTT
- Closed Caption Creator Project
- Caption Inc.
- LMS Transcript
- JSON
- Substation Alpha
- Advanced Substation Alpha
- SCC
- MCC
- Rich Text Format
- SRT
- WebVTT
- Subviewer
- Canvass SST Project
- Sofni
- Micro DVD
- DVD Architect
- Avid DS
- Adobe Encore
- Apple DVD Studio Pro
- EZ Title
- PowerPixel Format
- ProCap Transfer
- QuickTime Text
- Eclipse
- EBU-STL
- Spruce STL
- PAC
- Cheetah (binary)
- Videotron Lambda
- NCI Caption
- Cheetah (ASCII Text)
- DFXP
- DLP Cinema
- Netflix TT Captions
- Netflix TT Subtitles
- MAGIC TT
- EBU-TT
- SMPTE-TTML
- IMSC Text Captions
- IMSC Text Subtitles
- DCDM Subtitle
- Verizon TTML
- Bento MP4-DASH IMSC
- Netflix DFXP
- Synchronized Accessible Media Interchange
- Comma-Separated Values
- Google STT Transcript
- Assembly AI STT Transcript
- Deepgram STT Transcript
- RevAI STT Transcript
- Voicegain STT Transcript
- Speechmatics STT Transcript
- Vitac
TTML questions
DFXP (Distribution Format Exchange Profile) was the original name of TTML during standardization, and is now one of its profiles. In practice, “DFXP” files are TTML documents that follow that profile and often use the .dfxp extension.
IMSC (Internet Media Subtitles and Captions) is a W3C profile of TTML designed for streaming. Every IMSC document is valid TTML, but not every TTML document is valid IMSC. Many OTT and IMF specifications require IMSC.
Most platforms validate against a specific TTML profile, with rules for timing format, allowed styles, regions and metadata. Convert to the platform’s named profile (for example Netflix TT or IMSC Text Subtitles) rather than generic TTML.
Convert your TTML files in minutes
Upload a file in the web app, or automate conversions with the API and CLI. No credit card required to start.