Set a Minimum Gap Between Subtitles
Or paste subtitle text
Options
Milliseconds of blank screen to leave between one cue ending and the next beginning. 80 ms is two frames at 25 fps and is enough to stop two cues reading as one; broadcasters often ask for a few frames. Where a pair is closer than this, the earlier cue is shortened to open the gap — it never gets shorter than a single millisecond, and a pair that cannot be separated by the full amount is reported rather than forced.
The blank between two cues has two edges: the earlier cue's end and the later cue's start. End moves the earlier cue's end, so closing a gap lengthens that cue and widening one shortens it; the later cue keeps its timing to the millisecond. Start moves the later cue's start instead and leaves the earlier cue alone. Pick the one whose timing you trust more — usually the cue whose text is spoken last, since a cue should not appear before its line is heard.
Which frame rate the timings are counted in. On the format pages this is what MicroDVD needs, because it stores timing as frame numbers. On the frame rate pages it is the rate the file was timed against — the version the subtitles were made for — and the page's second box takes the rate of the video you are going to use them with. 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 are the common ones. Getting it wrong shifts the whole timeline, and on the frame rate pages it shifts it by a ratio rather than by a fixed amount.
This page keeps a floor under the blank screen between cues: give it a number of milliseconds and no two subtitles are left closer together than that. Where a pair sits too close, the earlier cue gives up the time — it ends sooner — and the later cue keeps every millisecond the file gave it. Set the floor to 80 milliseconds, the value this box starts at, and two lines that used to run into each other read as two separate things again.
It is the opposite request to filling gaps, and the two cannot be combined. One asks for no more than N milliseconds of blank screen, the other for no fewer than N; a page that carried both would produce a file whose result depended on which constraint happened to run last, while the panel said something else. So they are two pages, and the job they do is genuinely different: filling gaps is about flicker, this one is about two speakers' lines bleeding together.
Eighty milliseconds is not arbitrary — it is two frames at 25 fps, the shortest break most viewers register as a break. If your requirement is written in frames rather than milliseconds, put the frame rate in the fps box and multiply: four frames at 24 fps is 167 ms, two frames at 29.97 is 67. The frame rate is also what MicroDVD's frame-number timecodes are read and written with, so it is worth getting right on that format in particular.
Which edge moves is a real choice here rather than a formality. End, the default, pulls the earlier cue's ending back, so the line is still spoken in full and merely leaves the screen a little sooner. Start pushes the later cue's appearance later instead, which keeps the earlier cue's timing intact but means the next line comes up slightly after it is heard — the one to pick when the earlier cue is the one you trust. Nothing is uploaded: every file is read and written inside the browser tab, and SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON and CSV are all accepted.
Examples
Two cues ten milliseconds apart
Input
1
00:00:01,000 --> 00:00:02,000
First line.
2
00:00:02,010 --> 00:00:03,000
Second line.
3
00:00:03,400 --> 00:00:04,000
Third line.
Output
1
00:00:01,000 --> 00:00:01,930
First line.
2
00:00:02,010 --> 00:00:03,000
Second line.
3
00:00:03,400 --> 00:00:04,000
Third line.
The first pair is 10 ms apart, so the first line ends at 1930 instead of 2000 and the gap becomes exactly 80. The second pair is 400 ms apart, well inside the floor, and neither of those cues moves a millisecond. Note that the second cue is untouched in both pairs — only the cue on the left of a too-narrow gap loses time.
A gap of exactly 80, and a gap of 79
Input
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,080 --> 00:00:02,500
Second.
3
00:00:02,579 --> 00:00:03,000
Third.
Output
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,080 --> 00:00:02,499
Second.
3
00:00:02,579 --> 00:00:03,000
Third.
The floor is a minimum, not a target: a gap of exactly 80 ms already satisfies it and is left alone, while a gap of 79 is one millisecond short and the second cue gives up exactly that one millisecond. Both sides of the boundary are in the same file here so you can see the test is at least, which is what makes a file whose gaps all sit on the number come back untouched.
The later cue moves instead
Input
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,010 --> 00:00:03,000
Second.
Output
1
00:00:01,000 --> 00:00:02,000
First.
2
00:00:02,080 --> 00:00:03,000
Second.
The same pair as the first run, with Start chosen: the second line now begins at 2080 rather than 2010, and the first cue keeps every millisecond it had. That extra 70 ms is visible to the viewer as the second line arriving slightly late, which is the price of trusting the earlier cue's timing — take this edge when the earlier cue is the one that was checked against the audio.
Frequently asked questions
Where does the 80 millisecond starting value come from?
Two frames at 25 fps. Below about that, a gap between two subtitles reads to most viewers as a single two-line subtitle rather than as a handover between two of them, which is exactly the confusion a minimum gap is meant to remove. If your requirement is quoted in frames — four, six, a broadcast spec saying so many frames — set the frame rate box to the rate of your project and convert: at 24 fps four frames is 167 ms, at 29.97 two frames is 67.
Can I use this page to fill gaps as well as open them?
No, and it is deliberate. This page only ever opens gaps: a pair that is already further apart than your number is left exactly as it is. Asking for both at once would be self-contradictory — no more than N and no fewer than N — so the two live on separate pages and the file is the same either way only when your file already satisfies both. Filling gaps is the page to use when you want cues to run into each other or sit edge to edge.
What happens when a cue is too short to give up the time?
It is left alone and the pair stays closer than you asked for. A one-millisecond cue cannot surrender 80 of them, and shrinking it to nothing would produce a cue no player draws — worse than the tight gap you were trying to fix. The page reports the run as changed-nothing rather than forcing the number, so a run with an empty changed list is the honest answer to a file that had no room, not a sign that the setting was ignored.
Why is it the earlier cue that gets shorter?
Because letting a line leave the screen a little early is safer than letting the next one arrive a little late. With End, which is the default, every spoken word is still covered by the cue it belongs to and only the tail is trimmed. Start shifts the later cue's whole appearance later, which puts its first word on screen after it has been heard. Both edges are offered because some files genuinely want the second behaviour, but the safe one is the default.
Does MicroDVD's frame numbering affect the result?
It changes how the file is written back, not what the page does. MicroDVD stores frame numbers instead of clock times, so the frame rate box is what turns a start of 1000 ms into a frame number on the way in and back out again. On that format a floor that is not a whole number of frames gets rounded to the nearest one, which is a real limit on how precise a gap can be — at 25 fps, 80 ms is exactly two frames, so the default lands on a whole number there.
Will the run ever push one cue past the next one?
No. Only the earlier cue's end moves, and it can only move backwards, so the worst case is a cue that gives up all the time it had and stops at its own start — it never reaches into the following cue's slot and it never creates an overlap. A file that already has overlaps is untouched in those spots, since a pair that is already crossing has no gap to widen; that file wants the page that removes overlaps.