Subtitle Editor
Free online subtitle editor: fix subtitle sync, convert SRT to VTT, and rescale timing for frame-rate (fps) changes. Edit, merge, split and shift cues fast.
Subtitle Editor - Edit SRT & VTT Files Online
Subtitle Editor opens, edits, and converts SRT and VTT subtitle files entirely in your browser — no upload, no account, no watermark. Adjust timing with millisecond precision, merge or split entries, and shift the whole track to fix a constant sync offset. The standout feature for video pros is FPS Convert: rescale every timestamp when a track timed for one frame rate plays on another (e.g. 25 fps PAL to 23.976 fps film), which a fixed Shift can never fix because the drift grows linearly. A two-point sync mode lets you pin the correct time of the first and last cue and fits everything in between. Convert between SRT (universal player support) and WebVTT (HTML5 video, with cue positioning preserved) with one click. Built for content creators fixing fan-translated subs for YouTube, podcasters generating accessibility captions, language learners polishing translations, video editors syncing dialog to a re-cut, and accessibility professionals adding closed captions for WCAG and ADA compliance. Supports drag-and-drop and instant download of the edited file.
What is a Subtitle Editor?
A subtitle editor is a tool for creating and modifying subtitle files. This editor supports:
- SRT (SubRip) - Most common format
- VTT (WebVTT) - Web standard format
You can edit timing, text content, merge entries, split entries, and shift all timestamps. Perfect for syncing subtitles or fixing timing issues.
How do I use this tool?
Using the Subtitle Editor:
1. Load a subtitle file (SRT or VTT) or create a new one
2. Edit entries in the table:
- Modify start/end times
- Edit subtitle text
- Add or delete entries
3. Use toolbar actions:
- Shift Times: Move all timestamps
- Merge: Combine selected entries
- Split: Divide one entry into two
4. Export as SRT or VTT format
All changes are made in real-time in the table.
What is the difference between SRT and VTT?
SRT (SubRip Subtitle):
- Most widely supported format
- Simple text-based format
- Uses comma for milliseconds (00:00:00,000)
- Works with most video players
VTT (WebVTT):
- Web standard for HTML5 video
- Supports styling and positioning
- Uses period for milliseconds (00:00:00.000)
- Required for web video players
Both formats contain the same basic information: timing and text.
How do I sync subtitles?
To sync subtitles with video:
1. Find an entry that's out of sync
2. Note how many seconds off it is
3. Use 'Shift Times' to adjust:
- Positive value: Delays subtitles
- Negative value: Makes subtitles earlier
4. Apply to all or selected entries
For example, if subtitles appear 2 seconds too early, shift by +2 seconds.
Can I merge multiple subtitles?
Yes! To merge subtitle entries:
1. Select the entries you want to merge (use checkboxes)
2. Click 'Merge' in the toolbar
3. The entries will combine into one:
- Start time from first entry
- End time from last entry
- Text combined with line breaks
This is useful for combining short entries into longer ones.

Is my data safe?
Yes, completely safe:
- All processing happens in your browser
- No files are uploaded to any server
- Your subtitles never leave your device
- No data is stored or tracked
This is a 100% client-side tool. You can even use it offline after the page loads.
How precise is the millisecond timing in SRT and VTT files?
SRT timestamps use HH:MM:SS,mmm where mmm is 0-999 milliseconds; WebVTT uses HH:MM:SS.mmm with the same resolution. Both formats are accurate to 1 ms in theory, but real-world playback precision depends on the video player and frame rate. At 24 fps a single frame is 41.6 ms wide, at 30 fps it's 33.3 ms, at 60 fps it's 16.7 ms — so timing finer than one frame interval is imperceptible to viewers. The editor stores times internally as floating-point seconds and rounds only on export, so repeated shift operations don't accumulate rounding error. For broadcast-grade workflows that need frame-accurate sync, use SMPTE timecode and tools like Subtitle Edit or EZTitles instead — SRT and VTT are designed for streaming and web video where 1-frame slop is acceptable.
When should I use SRT versus WebVTT for my subtitle file?
Use SRT when you need maximum compatibility: it works in VLC, MPC-HC, mpv, MX Player, Plex, Jellyfin, every smart-TV media player, every desktop video player, and is the format YouTube, Vimeo, and Facebook accept for uploaded captions. Use WebVTT when you're embedding HTML5 <video> elements directly on a website — VTT is the only format the <track> element natively supports, and it allows CSS styling, positioning cues (line:0 align:start), karaoke-style timing, and chapter markers that SRT cannot represent. This editor preserves the cue-setting tail of each VTT timing line, so positioning survives a round-trip. Both encode UTF-8 text, support multi-line entries, and store the same start/end timestamps. For most use cases SRT is the default; convert to VTT only when targeting a specific HTML5 player or browser-based video API that requires it.
My subtitles start in sync but drift off later — why won't Shift fix it?
That is the classic frame-rate mismatch. A track authored for 25 fps PAL playing on a 23.976 fps film source (or vice versa) runs at a slightly different speed, so the error grows linearly with time — about 4.3% off, meaning the last line of a one-hour film can be off by roughly 150 seconds even though the first line was perfect. A constant Shift only adds the same offset everywhere, so it can fix a fixed delay but never a speed difference. Use the FPS Convert tool instead: pick the source and target frame rates (every timestamp is multiplied by source/target), or use Two-point sync — type the correct time of the first and last cue and the editor fits a linear scale and offset to everything in between. Common pairs are 25 to 23.976, 30 to 25, and 29.97 to 23.976.
What reading speed (CPS) and line limits should professional subtitles follow?
Reading speed is measured in characters per second (CPS). Netflix caps adult content at 17 CPS (20 CPS for children's titles), and the BBC subtitle guidelines target roughly 160–180 words per minute. Keep each cue on screen long enough to read: a common floor is about 1 second minimum and 7 seconds maximum, with a small gap (2 frames or ~83 ms at 24 fps) between consecutive cues so they don't visually touch. Limit each line to 37–42 characters and prefer two lines maximum. If a cue is too dense, use Split to break it into two timed cues; if two short cues flash too fast, use Merge. Staying within these limits keeps captions readable and compliant with broadcaster and streaming-platform delivery specs.
Key Features
- Edit SRT and VTT subtitle files
- Modify start and end times
- Edit subtitle text with multi-line support
- Add, delete, and insert entries
- Shift all timestamps at once to fix a constant sync offset
- FPS Convert: rescale timing for frame-rate changes (25 to 23.976 fps and more)
- Two-point sync: pin the correct time of the first and last cue
- Merge multiple entries into one
- Split entries into two
- Renumber entries automatically
- Convert between SRT and WebVTT (cue positioning preserved)
- Preview output before download
- Copy to clipboard
- 100% client-side processing
- No file upload required
- Dark mode support
- Mobile-friendly interface
