Whole-timeline offset
Add an exact integer-millisecond offset to every cue (positive or negative). +1500 ms is exact, end is never smaller than start; negative starts are rejected by default with guidance, or clipped to 0 with an impact count.
Inputs and parameters
input— Subtitle textinputFile— Or choose a subtitle file (.srt / .vtt)encoding— Source encodingsource— Input formatoffsetMs— Offset (integer ms, positive or negative)negativePolicy— Negative-start policyformat— Output format
Real example
1
00:00:00,500 --> 00:00:02,000
First line
→ 1
00:00:02,000 --> 00:00:03,500
First line
(offset +1500ms)
Limits and failure handling
Offset must be integer milliseconds (1.5 is rejected). Negative starts are refused by default rather than silently clipped; with clamping, start/end are >= 0 and end >= start. Defaults: 5 MiB / 5000 cues; VTT positioning/style may be lost and the original stays downloadable.
FAQ
Does offset change cue duration?
No. Both start and end receive the same integer milliseconds, so duration is unchanged; only clamped cues change duration.
What if a negative offset is rejected?
The error states how many cues would cross zero; switch the policy to "Clamp to 0" and rerun — the result reports the clamped count.
Can I also change format?
Yes. Choose SRT or WebVTT in "Output format"; the shifted cues are serialized accordingly. Default keeps the source format.