b2KIT

Subtitle Timing Editor

Edit SRT/VTT subtitle timing, shift all cues, adjust sync offset, and fix overlapping entries.

Tested tool guide Tested browser tools Checked August 16, 2026

What Subtitle Timing Editor does, with a checked example

Every problem this tool touches is a timing problem: captions that appear two seconds late, cues that overlap on screen, or a caption file that one player accepts and another rejects. You paste an SRT or WebVTT file, choose an operation - shift every cue by a constant offset, resolve overlapping cues, or convert between the two formats - and copy out the corrected file. The surprise most users hit: a shift is one fixed offset added to every timestamp, not a proportional retime, so it cannot fix sync error that grows over the video. The separator detail matters too: SRT writes milliseconds after a comma, WebVTT after a dot.

Worked example

A concrete input and expected output from the current implementation.

Input

SRT file:
1
00:00:05,000 --> 00:00:07,500
Good morning.

Offset: +00:00:02,500

Expected output

1
00:00:07,500 --> 00:00:10,000
Good morning.

Adding the 2,500 ms offset to the start gives 5,000 + 2,500 = 7,500 ms, and to the end gives 7,500 + 2,500 = 10,000 ms, so both timestamps move two and a half seconds later and the cue keeps its 2.5-second duration.

How the result is produced

1

Timestamp parsing and offset arithmetic

Each timestamp line is parsed into hours, minutes, seconds, and milliseconds and converted to a single millisecond count. The requested offset is added to the start and end of every cue, then each result is re-formatted with two-digit hours, minutes, and seconds plus three-digit milliseconds. Carries are handled correctly: 00:00:59,900 plus 200 ms becomes 00:01:00,100.

2

Overlap resolution and format conversion

The overlap pass compares each cue's start time with the previous cue's end time and, where the later cue begins too early, adjusts the boundary so the two no longer share screen time. Conversion between formats rewrites the structural parts: SRT is a numbered list using a comma before milliseconds, while WebVTT starts with a WEBVTT header and uses a dot. Both are plain-text changes you can verify in the output before copying.

Good uses

  • Every caption in a recording or transcript is consistently late (or early) by the same amount, and you need one offset applied to the whole file at once.
  • A player or upload target rejected your file because cues overlap - one caption still showing while the next has started - and you want the boundaries repaired automatically.
  • You need the same captions in the other format, SRT to WebVTT or WebVTT to SRT, for a different player, platform, or encoding tool.

Limits and checks

  • A shift is a constant offset, not a retime: if the captions are on time at the start and late by the end, the error grows with the video and no single offset can fix it.
  • A backward shift can push early cues before 00:00:00,000; those cues are clamped or removed, so inspect the beginning of the file after shifting earlier.
  • Overlap resolution changes how long text stays on screen: a fixed 300 ms overlap means one cue now displays 300 ms less, which can make fast dialogue harder to read.

Common questions

My captions are on time at the start but drift late as the video plays. Will shifting fix that?

No. A shift adds one constant offset to every timestamp, so it only corrects an error that is the same size everywhere. Drift that grows during playback needs each cue retimed individually, or a rate adjustment, which this tool does not apply. Shifting would simply move the whole file, leaving the same growing error in a new position.

What happens to the first cues if I shift the file earlier than the start of the video?

Any cue whose new start would land before zero cannot play at a negative time, so the tool clamps it to 00:00:00,000 or removes it. Cues can also end before they begin if the offset is large. Always re-check the first few cues after a backward shift, since those are the ones affected.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools