Fix overlapping subtitles
Subtitles overlap when one cue's end time runs past the next cue's start, so a player shows two lines at once or flickers between them. This tool finds every collision and resolves it by trimming the earlier cue's end back to just before the next one begins, leaving a small gap you choose. Your text and every non-overlapping timestamp are left exactly as they were, and no cue is ever removed. It all runs in your browser.
Why overlaps happen and how the fix keeps your file intact
Every subtitle cue has a start and an end time, and they're meant to run one after another. An overlap is simply a cue whose end time is later than the start time of the cue that follows it. That extra bit of time forces both cues onto the screen together, which most players show either stacked or as a quick flicker as one replaces the other. It creeps in when subtitles are timed by hand, when two files are merged, after an automatic sync, or sometimes when converting between formats.
The fix is deliberately minimal. The tool walks through the cues in order and, wherever one runs into the next, moves only that earlier cue's end time back to sit just before the next cue's start, with the gap you set in between. Start times, text, styling, and any cue that already clears the next one are never touched, and nothing is deleted, so the file that comes out is your file with only the colliding end times corrected. If a cue is completely swallowed by the one after it, it's trimmed down to a zero-length gap rather than given a negative duration. To check reading speed or line length after fixing, use the CPS Checker, and to give short cues more time on screen, the Reading Speed tool.
FAQ
What causes subtitles to overlap?
An overlap happens when one cue's end time is later than the next cue's start time, so both are on screen at the same moment. It usually comes from hand-timing, merging two subtitle files, a bad automatic sync, or converting between formats. Players react by stacking the two subtitles or flickering between them.
How does the fix work?
For each pair of cues that collide, the tool trims only the earlier cue's end time back to just before the next cue starts, leaving a small gap you can set. It never touches the start times, the text, or any cue that doesn't overlap, and it never deletes a cue. The result is that each subtitle clears the screen before the next appears.
What gap should I leave between subtitles?
A gap of one to two frames is standard, which is roughly 40 to 80 milliseconds at common frame rates. It keeps consecutive subtitles from touching so the change reads cleanly. The default here is 40 ms, and you can set any value, including zero if you want cues to butt right up against each other.
Which formats does it work with?
Any format that stores a start and an end time for each cue: SubRip (.srt), WebVTT (.vtt), SubStation Alpha (.ass), YouTube SBV (.sbv), and both kinds of .sub (frame-based MicroDVD and time-based SubViewer). LRC lyrics are start-only, with no real end times, so there's nothing to overlap there.