subtitle tool

Convert SRT / SCC / ITT to WebVTT (.VTT)

Upload your subtitle file and download a clean .vtt instantly.

Subtitle → WebVTT Converter

Supported inputs: .srt, .scc, .itt/.xml (iTT/TTML). Output: .vtt.

Tip: If you upload .xml, make sure it’s an iTT/TTML subtitle file.
If unsure, leave it at 30.

How this converter works

Subtitle formats store timing in different ways. This tool converts your source captions into standard WebVTT cue blocks — so you can use them in browsers, HTML5 players, and modern streaming workflows.

  • SRT → VTT: Converts cue timings and keeps plain text lines clean.
  • SCC → VTT: Converts Scenarist captions to readable WebVTT cues.
  • ITT/TTML → VTT: Converts XML-based subtitles to WebVTT (some formats use frames).

Tip: WebVTT is the most compatible format for web playback (HLS players, embedded players, and HTML video tags).

Practical guide

Pick the right file type

SRT

Great for simple captions. Usually easiest to convert and edit.

SCC

Common for broadcast workflows. Often includes styling/positioning signals.

ITT / TTML (XML)

Used in platform deliveries. Sometimes uses frame-based timestamps (needs correct FPS).

When the FPS box matters

Use FPS only if your ITT/TTML contains frame-based times like HH:MM:SS:FF. If you’re seeing timings that look “almost right” but slightly off, check the correct FPS (common values: 23.976, 24, 25, 29.97, 30).

After converting

  • Open the .vtt in a text editor and spot-check the first 2–3 cues.
  • Test in your player (browser/website) to ensure cues render and line breaks look right.
  • If cues are consistently early/late, use the VTT Timecode Shifter tool to apply a constant offset.

Tip: If you’re synced at the start but drift later, that’s usually a framerate/timebase mismatch — not a constant offset.

Troubleshooting & FAQ

My converted VTT downloads but doesn’t show captions in the player.
Check that your player supports WebVTT and that the track is correctly attached. Also confirm the file begins with WEBVTT and cue lines look like 00:00:01.000 --> 00:00:03.000.
My ITT file uses HH:MM:SS:FF. What FPS should I use?
Use the same FPS as the video or delivery spec. If you don’t know it, try common values: 23.976, 24, 25, 29.97, 30. A wrong FPS can cause cues to drift over time.
The tool says conversion failed. What causes that?
Most often: the file isn’t a valid subtitle file (e.g., a non-subtitle XML), the file is corrupted, or it uses an uncommon variant. Re-export the subtitle from your source system and try again.
Will styling/positioning be preserved?
Basic text and timings are preserved. Some advanced styling/positioning from SCC/TTML may not map 1:1 to WebVTT. If you rely on complex placement, review the converted output.
Do you store my subtitle files?
The file is processed to generate your converted output and returned immediately. The site is designed for temporary processing, not long-term storage. For official details, see the Privacy Policy.
My VTT is slightly early/late after converting. How do I fix it?
If it’s a constant offset, use the VTT Timecode Shifter tool (example: +2.5 or -1 seconds). If it drifts more and more, it’s likely an FPS/timebase mismatch.

Tip: If you’re delivering captions to multiple platforms, keep your original subtitle files and treat converted VTTs as platform-specific outputs.

Quick glossary

  • Cue – one subtitle block with a start time, end time, and text.
  • Timebase / FPS – how time is measured (frames vs milliseconds). Wrong FPS can cause drift.
  • Offset – a constant shift (captions are always early/late by the same amount).
  • Drift – captions start in sync but become more out-of-sync over time.

Support via UPI

Scan this QR to buy me a coffee ☕

UPI QR