CAPTIONS

Subtitle & Caption Converter

Convert between SubRip (SRT), WebVTT (.vtt), and TTML/DFXP - apply a global time offset, catch overlapping cues, and download the result.

Positive = later, negative = earlier. Applies to every cue.
0 cues
Captions across every platform, every language.

OTT Engine ingests captions, delivers FCC/CVAA-compliant rendering on Roku, Fire TV, and Apple TV, and offers AI-powered CC Translation as an add-on.

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

FormatExtensionTimestampHeaderStyleWhere it is used
SRT (SubRip).srt00:00:01,000 --> 00:00:02,500NoneLimited (<i>, <b>)VOD, downloads, YouTube, social uploads
WebVTT.vtt00:00:01.000 --> 00:00:02.500WEBVTTCSS-like cue settings, regionsHLS captions, Apple TV, Roku, web players
TTML / DFXP.ttml / .dfxpbegin="00:00:01.000" end="00:00:02.500"XML root with namespacesFull XML styling, region anchorsSMPTE-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.

Related tools

Related reading