How the converter works
Subtitle formats are remarkably similar - each is a sequential list of cues with a start time, end time, and one or more text lines. The differences are in how the timestamp is written, how line breaks are encoded, and how styling is described.
Format differences
| Format | Extension | Timestamp | Header | Style | Where it is used |
|---|---|---|---|---|---|
| SRT (SubRip) | .srt | 00:00:01,000 --> 00:00:02,500 | None | Limited (<i>, <b>) | VOD, downloads, YouTube, social uploads |
| WebVTT | .vtt | 00:00:01.000 --> 00:00:02.500 | WEBVTT | CSS-like cue settings, regions | HLS captions, Apple TV, Roku, web players |
| TTML / DFXP | .ttml / .dfxp | begin="00:00:01.000" end="00:00:02.500" | XML root with namespaces | Full XML styling, region anchors | SMPTE-TT, broadcast captions, smart TVs, DASH-IF |
Time-offset use case
If the captions are 2.4 seconds late against the picture, set offset to -2.4 and every cue shifts earlier. Offsets are applied before format conversion, so the downloaded file already contains the corrected timing.
Overlap warning
SRT does not allow overlapping cues; WebVTT and TTML do but most HLS players render them imperfectly. The converter flags any cue whose end time is after the next cue's start time so you can decide whether to fix the source.
Frequently Asked Questions
How do I convert SRT to VTT?
WebVTT is nearly identical to SRT with two changes: the file must begin with the line WEBVTT and each timestamp uses a period before the milliseconds instead of a comma (00:00:01.000 instead of 00:00:01,000). This converter handles both automatically.
What caption format does Roku and Apple TV require?
Roku accepts WebVTT (preferred) and SRT for VOD; HLS streams typically use WebVTT cues. Apple TV via HLS requires WebVTT. Smart-TV and FAST workflows often use TTML/DFXP. Converting to WebVTT covers the broadest CTV target set.
Why does my converted file show overlapping cues?
The converter flags cues whose end time is after the next cue's start time. Overlapping cues are valid in WebVTT but cause render issues on some HLS players. Adjust the source file or the time-offset to remove the overlap.