subtitle converter

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

Convert common subtitle formats into clean, standards-friendly WebVTT.

Subtitle formats store timing and text 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 into readable WebVTT cues (best-effort mapping).

ITT/TTML → VTT

Converts XML-based subtitles to WebVTT. Some variants use frames and may need the correct FPS.

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

Practical guide

Choose the right inputs, then spot-check output for quick confidence.

Pick the right file type

  • SRT – great for simple captions. Usually easiest to convert and edit.
  • SCC – common in broadcast workflows. Often includes styling/positioning signals.
  • ITT / TTML (XML) – used in platform deliveries. Sometimes frame-based (needs correct FPS).

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.
When the FPS box matters:
Use FPS only if your ITT/TTML contains frame-based times like HH:MM:SS:FF. If timings look “almost right” but drift, verify the correct FPS (common values: 23.976, 24, 25, 29.97, 30).

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

Troubleshooting & FAQ

Common issues and quick fixes for converted subtitle files.

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

A few subtitle terms that help when debugging sync.

  • 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