Free & Private Online Browser Utility
SRT Subtitle Time Shifter & Cleaner
Shift subtitle timestamps forward or backward by specific millisecond or second offsets to fix audio desynchronization issues. The tool parses SRT (SubRip) text, converts all timecodes into millisecond offsets, applies your positive or negative delay, and reconstructs valid timestamp formatting. Processing runs client-side without uploading your movie or video caption files.
How to use
-
Step 1: Upload or Paste SRT
Paste your raw subtitle text or drop an SRT file into the input area.
-
Step 2: Set Shift Offset
Enter the number of milliseconds or seconds to delay (positive) or advance (negative) timecodes.
-
Step 3: Download Updated Subtitles
Click Shift Timestamps and save the corrected SRT file to use with your media player.
Worked example
Input: 00:01:20,000 --> 00:01:23,500 with the offset field left at its default 1.5 — the field is in seconds, so that is +1500 ms on every cue
Output: 00:01:21,500 --> 00:01:25,000 with preserved caption text and sequential index
Calculated via millisecond integer arithmetic per subtitle cue.
Tips & limits
- If dialogue is heard 2 seconds before text appears, apply a negative shift of -2000 milliseconds.
- The tool preserves all formatting attributes, italic tags, and multiple lines of dialogue.
- Verify the offset on a single early dialogue cue in your media player before shifting entire seasons.
Common problems
- Exported subtitles are not recognized by VLC or media player
Ensure your file maintains standard SRT numbering and that timestamps use the comma separator for milliseconds.
- Subtitles gradually desync further over the course of the video
This indicates a frame rate mismatch (e.g., 23.976 fps vs 25 fps) rather than a constant delay; a linear stretch is required.
Frequently Asked Questions (FAQ)
How do I know whether to shift positive or negative?
If subtitles appear before the actor speaks, use a positive shift (+ms). If subtitles appear after the actor speaks, use a negative shift (-ms).
What subtitle formats are supported?
The tool is optimized for SRT (SubRip) format, the most common subtitle container for web and desktop players.
Are my subtitle files uploaded to a server?
No. All text parsing, timestamp arithmetic, and file downloads execute in local browser memory.
What cleaning switches come with the shift?
Three are on by default: strip HTML formatting tags, remove sound cues such as [Music] or (Laughter), and resolve overlapping timestamps. The collision fix shortens an entry only as far as 50 ms before the next cue, and never below a 200 ms floor.
Which frame-rate conversions are on the list?
Six presets: leave timing native, 23.976 up to 25.0, 25.0 down to 23.976, 24.0 up to 25.0, 25.0 down to 24.0, and 23.976 up to 29.97. A shifted start time is clamped at zero, so pulling cues earlier never produces negative timecodes.
The SRT Subtitle Format: Specification & Timestamp Arithmetic
The SubRip Text (SRT) file format is the global standard for timed closed captions and video subtitles. Created in 1999 as an extraction format for DVD rips, its enduring popularity stems from its human-readable, plain-text simplicity. Every SRT caption event is defined by four sequential components:
- Sequential Block Number: An incremental integer (1, 2, 3...) identifying each caption event in strict chronological order.
- Timestamp Line: The start and end time boundaries formatted as HH:MM:SS,mmm --> HH:MM:SS,mmm, where hours, minutes, and seconds are separated by colons and milliseconds are separated by a comma delimiter.
- Text Content: One or more lines of spoken dialogue, sound effects, or subtitle translations. Basic HTML styling tags like italic or bold may occasionally appear.
- Blank Separator Line: An empty newline separating sequential subtitle blocks, required by parsers to delineate caption events.
Why Subtitle Desynchronization Occurs
Audio-to-subtitle desync rarely stems from corrupt caption files. Instead, desynchronization typically occurs during video re-encoding across differing lossy compression codecs, container format conversions (such as transmuxing MKV to MP4 containers), missing introductory distributor logos, cut commercial breaks, or missing frames dropped during digital video editing.
High-Precision Timestamp Arithmetic
Adjusting subtitle timings cannot be accomplished by basic string replacement because 60 seconds roll over into minutes and 60 minutes roll over into hours. Our tool handles timing adjustments through strict millisecond arithmetic:
- All start and end timestamps are parsed into total absolute milliseconds: (hours × 3,600,000) + (minutes × 60,000) + (seconds × 1,000) + ms.
- The shift delta (positive to delay, negative to advance) is added or subtracted from both timestamps.
- Values are clamped to a minimum boundary of 00:00:00,000 to prevent negative timeline offsets.
- Timestamps are re-formatted into standard zero-padded SRT timecodes with comma-separated millisecond precision.
| Subtitle Format | Extension | Timestamp Format | Software Support |
|---|---|---|---|
| SubRip | .srt | HH:MM:SS,mmm (comma ms) | Universal – VLC, Premiere, Final Cut, Netflix |
| WebVTT | .vtt | HH:MM:SS.mmm (period ms) | Web browsers – HTML5 video track element |
| ASS/SSA | .ass / .ssa | H:MM:SS.cs (centiseconds) | Anime fansub, advanced styling |
| TTML/DFXP | XML-based | Milliseconds ISO 8601 | Broadcast streaming – Amazon, Disney+ |
Common Subtitle Desync Causes & Correction Workflows
Subtitle synchronization discrepancies fall into two primary mechanical categories: constant offset errors and progressive drift errors. Identifying the root cause helps maintain accurate, lasting correction:
A/V Sync Drift: VFR vs. CFR Frame Rate Mismatches
Progressive audio/video sync drift happens when dialogue starts in sync but drifts further apart as the media plays. This is frequently triggered when video recorded at Variable Frame Rates (VFR) on smartphones or live web streams is re-encoded into Constant Frame Rates (CFR), or when video encoded at 23.976 fps (the North American cinematic standard) is matched against subtitles timed for 25.0 fps (European PAL broadcast standard). Because 25 frames elapse every second instead of 23.976, subtitles drift by roughly 4.1% over time (2.5 seconds per minute).
How to Calculate the Required Time Shift
When encountering a constant timing mismatch throughout the file, calculate the exact millisecond offset with this simple workflow:
- Locate a clear spoken line in the video and note the exact timestamp when the audio begins (e.g., 00:02:15,800).
- Check the start timestamp for that same subtitle line in the SRT file (e.g., 00:02:13,500).
- Subtract the subtitle timestamp from the audio timestamp: 215.800s - 213.500s = +2.300s.
- Because the dialogue appeared 2.3 seconds early, apply a shift of +2.3s (+2300ms) to delay the subtitles. If the subtitles appeared after the speech, apply a negative shift (e.g. -2300ms).
Batch Progressive Drift vs. Constant Offset Correction
While constant offsets require adding or subtracting a uniform millisecond value across all blocks, progressive drift requires linear time stretching. Our tool allows you to apply linear framerate conversion factors alongside static offsets, adjusting subtitle spacing proportionally from start to finish.
Transcripts Shifted Without Being Uploaded
All subtitle parsing, millisecond offset shifts, tag stripping, and SRT file generation execute locally in your browser memory. Your video transcripts, confidential dialogue scripts, and personal subtitle files are never transmitted to external cloud servers.