The rule: subtract the clip start
An SRT file positions captions on the full-length source timeline. A trimmed clip starts a new timeline at 00:00, so every caption must be moved back by the clip's original start time:
new timestamp = original timestamp − clip start
Worked out, that looks like this:
Original: 00:03:45,500 --> 00:03:48,000 Clip starts: 00:03:42,000 Result: 00:00:03,500 --> 00:00:06,000
Do the arithmetic in integer milliseconds — 3.5 seconds stored as 3499.99999 rounds to the wrong millisecond. The output uses HH:MM:SS,mmm with a comma separator, the standard SRT form.
When resetting to 00:00 is the fix
- You cut clips out of a long recording and each delivered clip needs its own SRT starting at zero.
- A client hands back a clip with subtitles that are minutes out of sync, and the captions themselves are fine.
- You exported one SRT for a subsequence and want it re-based to the subsequence start instead of the master timeline.
Three ways to reset timestamps, compared
| Method | Strength | Watch out for |
|---|---|---|
| By hand | Zero setup, fine for a small file | Subtraction, renumbering and negative clamping are repeated for every caption and every clip |
| FFmpeg | Free and scriptable | ffmpeg -i in.srt -ss <start> -t <dur> out.srt cuts a range and ffmpeg -itsoffset -<seconds> -i in.srt out.srt shifts it earlier, but neither re-bases per clip nor renumbers for you |
| Clip Caption Kit | CSV in, audited ZIP out | Requires signing in; the free plan covers one project with up to 200 captions |
Common mistakes
- Forgetting to renumber. Players usually tolerate it, some do not — and a delivery reviewer will notice.
- Float arithmetic. Convert to integer milliseconds first, subtract, then convert back.
- Subtracting the wrong time base. The clip start is a position on the original timeline, not a duration of the clip.
- Treating a different cut as an offset. A constant shift cannot fix captions made for another version of the edit — see the out-of-sync guide for the diagnosis.
Resetting a whole clip list
When the reset is part of a delivery — one master SRT, many clips — write the ranges into a CSV and run the batch SRT splitter: every clip comes back re-timed to 00:00, renumbered and paired with a plain-text TXT.
Resetting SRT timestamps FAQ
Reset timestamps for a whole clip list
Put the clip ranges in a CSV once and generate re-timed, clip-relative SRT and TXT files for all of them in one ZIP.
Batch split my SRT