Skip to content

TTML to VTT Subtitle Converter

Extract TTML cue timing and text into a basic WebVTT file.

Drag & drop your TTML file here

or click to browse

Supports .ttml, .itt, .xml files up to 50 MB

Core Engine Architecture

Free Online TTML to VTT Converter

This converter reads <p> cues from a TTML document and writes basic WebVTT output. The file starts with a WEBVTT header, each cue receives dot-separated start and end timestamps, <br/> elements become line breaks, and common inline formatting tags are removed. No cue settings or styling metadata are generated.

Payload & Syntax Inspector

TTML to VTT Code Syntax & Structure Inspection

Side-by-side code inspection illustrating header definitions, timestamp syntax, and cue payload formatting

Millisecond Sync
input.ttml
TTML SOURCE
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml">
<body>
<div>
<p begin="1.000s" end="4.000s">Hello, world!</p>
<p begin="4.500s" end="8.000s">This is a subtitle file.</p>
<p begin="8.500s" end="12.000s">Converted locally!</p>
</div>
</body>
</tt>
output.vtt
VTT RESULT
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
Specification Sheet

TTML vs VTT Technical Specifications

Standard Compliant
Input Format

TTML

TTML

TTML (Timed Text Markup Language) is an XML subtitle format. This converter looks for <p> elements with begin and end, or begin and dur, timing attributes, and accepts second-based or clock-valued timing. Cues without a begin attribute are skipped.

Output Format

VTT

VTT

VTT (WebVTT) is a text subtitle format used with web video. This converter emits the WEBVTT header followed by plain cues with HH:MM:SS.mmm --> HH:MM:SS.mmm timing and text. It does not add cue identifiers, cue settings, regions, styling, or metadata blocks.

Format Differences

TTML stores cues in XML <p> elements; VTT uses text cue blocks.
TTML uses begin, end, and dur attributes; VTT uses timestamp lines.
TTML supports XML styling, regions, and metadata; this output does not include VTT equivalents.
TTML <br/> elements become physical VTT text lines.

Conversion Troubleshooting & Gotchas

Practical solutions for player compatibility, character encoding, and timing synchronization

4 Common Gotchas
GOTCHA #1

Subtitle timing drifts or appears out of sync on media players

Video files frequently differ in framerate (e.g., 23.976 fps vs 25 fps). If the timing drifts steadily, use our Subtitle Sync tool to adjust the global offset or framerate stretch.

GOTCHA #2

Characters appear as garbled symbols or question marks (Mojibake)

Legacy files saved in Windows-1252, Shift-JIS, or GBK may render incorrectly. Our exporter standardizes output to clean UTF-8. Use our Subtitle Encoding Converter if the source file is corrupted.

GOTCHA #3

Overlapping captions when multiple speakers talk simultaneously

Different formats handle overlapping dialogue differently. If your target player cannot render stacked cues cleanly, open the file in our Subtitle Editor to adjust individual cue timings.

GOTCHA #4

Video editing software (Premiere, DaVinci, Final Cut) rejects the file

Professional NLE software enforces strict syntax rules. Our converter eliminates malformed line breaks and non-standard tags, producing clean, standardized files.

Features

Reads TTML <p> cues with begin/end or begin/dur timing
Adds the WEBVTT header required by the format
Writes dot-separated VTT start and end timestamps
Turns <br/> elements into normal VTT line breaks
Decodes XML entities and removes common inline tags
Processes files locally in your browser

Why Convert?

Web video workflows commonly use VTT rather than timed-text XML.
VTT is a simple plain-text format that is easy to inspect and edit.
The conversion keeps cue text, line breaks, and start/end timing.
Browser-side processing avoids uploading the subtitle file.
Scenarios

Common Use Cases

Web Video Preparation

Convert supported TTML cues into a basic VTT file for web-video testing and editing.

Simplified Cue Review

Inspect timing and text without TTML XML structure.

Format Interchange

Move recognized TTML cues into a web-oriented subtitle format.

Format Ecosystem

Related Formats

How It Works

  1. 1

    Select or drop a TTML file.

  2. 2

    The parser extracts <p> text and timing attributes in document order.

  3. 3

    End time comes from end, or begin plus dur; otherwise a three-second fallback is used.

  4. 4

    Line breaks are retained and common inline formatting tags are removed.

  5. 5

    Each cue is written after the WEBVTT header with a blank line after its text.

Frequently Asked Questions

No. The generated VTT contains basic cues with timing and text only. Cue settings for position, alignment, size, and regions are not generated.

If end is present, it is used. Otherwise dur is added to begin. If neither is present, the converter uses a three-second fallback duration.

It reads basic TTML <p> cues with supported timing syntax. Delivery profiles can add structures and timing expressions that this converter does not fully support.

No. Common inline TTML formatting tags are removed and no VTT styling tags are generated.

TTML <br/> elements become normal text line breaks in the VTT cue.

No. The converter extracts recognized <p> cues in document order. Separate language tracks before conversion if your source contains multiple languages.

Ready to convert your subtitles?

Drop your TTML file here and convert to VTT instantly.