VTT vs TTML: Web Captions or Structured Timed Text?
VTT is the web standard for HTML5 video captions. TTML is a structured XML format for platform delivery and broadcast. They belong in different contexts.
Quick Answer
Use VTT for all web video — it is the native format for HTML5 <track> and works in every modern browser. Use TTML when delivering to a streaming service or broadcaster that specifically requires it.
Use VTT if…
- Adding captions to HTML5
<video>via<track> - Using any modern JavaScript video player
- Serving captions from a CDN or streaming API
- Needing CSS
::cuestyling or chapter cues
Use TTML if…
- Delivering to Amazon Prime Video or Apple HLS
- Meeting EBU-TT broadcast specifications
- A delivery spec explicitly requires TTML
- Working with IMSC-compliant caption tools
VTT vs TTML Comparison Table
| Feature | VTT .vtt | TTML .ttml |
|---|---|---|
| Web standard | W3C WebVTT (for HTML <track>) | W3C TTML (for delivery/broadcast) |
| Format type | Plain text | XML |
| Browser HTML5 support | ✅ Native in all browsers | ❌ Not natively rendered |
| CSS styling (::cue) | ✅ | ❌ (uses XML-based styling) |
| Chapter / metadata cues | ✅ | Limited |
| YouTube | ✅ | ✅ (partial styling) |
| Amazon Prime delivery | Not standard | ✅ Often required |
| EBU-TT broadcast | ❌ | ✅ |
| Editability | Easy (plain text) | Harder (verbose XML) |
| HLS streaming | ✅ (WebVTT in HLS) | ✅ (TTML in DASH) |
Frequently Asked Questions
Can browsers render TTML directly?
No. The HTML <track> element only supports WebVTT. TTML requires a player library or server-side conversion for web use.
Which format do streaming services use?
It varies. Netflix uses TTML-based IMSC. Amazon Prime often requires TTML/DFXP. Apple HLS supports both WebVTT and TTML. YouTube accepts both.
How do I convert TTML to VTT?
Convert TTML to SRT using a dedicated TTML tool first, then use the SRT to VTT converter for the final step.