Subtitle Timing
How to Shift Subtitle Timing: Offsets Explained
To shift subtitle timing, apply one offset to every timestamp in the file: a negative offset (like -2 seconds) moves subtitles earlier when they lag behind the audio, and a positive offset (like +1.5 seconds) moves them later when they run ahead. In SubtitleShift you load your SRT file, type the offset, apply it to all lines at once, and export the corrected file. It runs in your browser, nothing is uploaded, and most files are fixed in under a minute.
Quick version: subtitles late → negative shift. Subtitles early → positive shift. Apply the offset to the whole file in one go, spot-check the start and end, export.
What does shifting subtitle timing actually do?
Every subtitle in an SRT file has a start and end timestamp, like 00:01:42,300 --> 00:01:45,100. Shifting the timing adds or subtracts the same amount from both numbers on every line. The subtitles keep their exact durations and spacing relative to each other; the entire track just slides earlier or later against the video, like moving a whole layer in a video editor.
That's why one shift fixes a whole file: if the captions were created for a version of the video with a longer intro, or ripped from a different release, every line is off by the same constant amount. Correct that constant and everything falls into place.
Positive or negative offset: which one do I need?
This is the part that trips most people up, so here's the rule stated plainly. Watch a line of dialogue and ask: does the text show up after the words are spoken, or before?
- Subtitles are LATE (text appears after the speech): use a NEGATIVE offset to pull them earlier. Speech at 00:10, caption at 00:13 → shift by -3 seconds.
- Subtitles are EARLY (text appears before the speech): use a POSITIVE offset to push them later. Caption at 00:08, speech at 00:10 → shift by +2 seconds.
- Not sure? Pause the video the moment a distinct line is spoken, compare that time to the subtitle's timestamp, and subtract. The sign of the result is the sign of your shift.
Memory aid: late needs less, early needs extra. Late captions get a minus, early captions get a plus.
How do I bulk-shift every timestamp in an SRT file?
Never edit timestamps line by line. A feature-length film can have well over a thousand cues, and one typo in a hand-edited timestamp (a swapped digit, a missing comma) can break the file in some players. A bulk shift changes every line in one operation, with zero chance of typos. Here's the full workflow.
1. Open your SRT file in the editor
Drag the .srt file into SubtitleShift or click to browse. You'll see every cue listed with its number, timestamps and text. Because everything runs client-side, the file never leaves your device.
2. Measure the offset once
Pick the first clearly identifiable line of dialogue. Note when it's actually spoken in the video and what timestamp the matching subtitle carries. The difference is your offset, sign included. One careful measurement beats five guesses.
3. Apply the shift to all lines
Enter the offset in the Timestamp Shifter and apply. Every start and end time in the file moves by that exact amount, whether it's 40 cues or 4,000. Use decimals for precision: -2.350 seconds is a perfectly valid shift, and SRT's millisecond resolution supports it.
4. Spot-check three points
Check a line near the start, one in the middle and one near the end. If all three line up, you had a constant offset and you're done. If the start is right but the end has slipped, the file has frame-rate drift, which one uniform shift can't fully cure; align the start first, then apply a second, smaller shift to the later part until the tail matches too.
5. Export the corrected file
Export produces a clean, UTF-8 encoded SRT that works in VLC, YouTube, Plex, Kodi and virtually any player. Keep the original file untouched so you can always start over with a different offset.
When is one shift not enough?
A single whole-file shift assumes every line is off by the same amount. Two situations break that assumption. First, frame-rate drift: subtitles timed for a 23.976 fps release played against a 25 fps encode slowly fall out of sync, so the error grows over time. Second, mid-video edits: if a scene was cut or added partway through, only the cues after that point are off. For edits, shift just the affected range rather than the whole file; range selection for partial shifts is part of SubtitleShift Pro, or you can split the fix into two passes on the free tier.
Why shift timing in the browser instead of a desktop app?
- Nothing to install: works in Chrome, Firefox, Safari and Edge on any OS.
- Private by design: the SRT and video stay on your device; there's no upload step at all.
- Fast iteration: apply a shift, check it, undo, try a new value: seconds per attempt.
- Free for typical files: the free tier handles up to 50 subtitles; a one-time $4.99 Pro upgrade unlocks unlimited cues, video preview and range selection.
Shifting subtitle timing is one number, applied once. Measure the gap at the first line of dialogue, give it the right sign, apply it to the whole file, and confirm the end still matches. That's the entire skill.
Frequently asked questions
Should I use a positive or negative offset to shift my subtitles?
Use a negative offset when subtitles appear after the words are spoken (they're late, so pull them earlier). Use a positive offset when subtitles appear before the words are spoken (they're early, so push them later). A quick memory aid: late captions need a minus, early captions need a plus.
How do I shift all subtitle timestamps at once?
Use a bulk time shift instead of editing lines one by one. In SubtitleShift, enter one offset value and apply it: every start and end timestamp in the file moves by exactly that amount, whether the file has 40 lines or 4,000. Hand-editing each timestamp is slow and error-prone.
How precise can a subtitle time shift be?
SRT timestamps carry millisecond precision (HH:MM:SS,mmm), so shifts can too. Whole seconds get you close, but a fractional value like -1.250 or +0.480 is what makes captions feel natural. Most people stop noticing a sync error somewhere under about a tenth of a second.
Will shifting subtitle timing change the text or formatting?
No. A time shift only adds or subtracts from the timestamps. The subtitle text, line breaks, numbering and formatting stay exactly as they were. If the text itself needs fixes, that's a separate edit you can do in the same editor.
What happens if a negative shift pushes a subtitle before 00:00:00?
SRT timestamps can't be negative, so a good editor clamps the earliest lines at zero rather than producing an invalid file. If your very first subtitle sits at 00:00:01 and you shift by -3 seconds, check that opening line afterward; you may need a smaller offset or a small trim of the first cue.
Can I shift subtitle timing without uploading my files anywhere?
Yes. SubtitleShift runs entirely in your browser, client-side. The SRT file (and the video, if you use preview) never leaves your device, which matters for unreleased footage, client work or anything confidential.