Skip to main content
SubtitleMatrix

Shift Subtitle End Times

TimingShift by a fixed offset
Or paste subtitle text

Options

Milliseconds to move every cue by. A positive number pushes the subtitles later, a negative one pulls them earlier. Zero is a legal value: the file comes back unchanged, which is a quick way to confirm a file already sits where you want it.

Start moves only the opening time and leaves the closing time where it was, so pushing the offset later makes every cue shorter and pulling it earlier makes every cue longer. End does the opposite. Use Start when the subtitles appear at the wrong moment but finish correctly; use End when they appear correctly and then linger or vanish too soon.

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 moves only the end time of every cue, so each subtitle finishes at a different moment while starting exactly where it always did. Give it a millisecond offset and the closing time of every cue moves by that much: a positive number lets each caption linger, a negative number takes it off screen sooner. Because the opening time is left alone, the duration of every cue changes as a result.

That is the side of the problem this page exists for. Subtitles that appear at the right moment and then sit there too long make reading feel sluggish and push the next line off screen before it is needed; subtitles that vanish a beat too early clip the tail of a line. A file-wide shift cannot fix either, because it moves both edges together and leaves every duration untouched. Here the cue keeps its opening frame and gets a new closing one.

One thing is counted rather than hidden. A cue whose end would be pulled back to or behind its own start cannot be written — the honest output is no cue at all — so it is removed and the count says how many. There is no equivalent of the clamping rule the starts page needs: an end time has no lower limit of its own to be pinned to, only the start of its own cue, and pinning it there would produce a zero-length cue, which is a removal by another name. Every surviving cue keeps its number and its text.

Each file is read as the format it actually is. SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON and CSV are accepted; plain text and LRC are not, because neither writes a closing time into the file at all. Nothing is uploaded — the offset is applied in the browser, and a whole season runs through the queue in one pass.

Examples

Let every subtitle linger half a second longer

Input

1
00:00:01,000 --> 00:00:03,000
Hello there.

2
00:00:05,500 --> 00:00:08,000
Second line.

Output

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:05,500 --> 00:00:08,500
Second line.

Each closing time moves 500 ms later and each opening time stays put, so cue 1 goes from 2000 ms on screen to 2500 and cue 2 from 2500 to 3000.

A short cue whose end is pulled past its own start

Input

1
00:00:01,000 --> 00:00:01,200
A short one.

2
00:00:05,000 --> 00:00:08,000
A long one.

Output

2
00:00:05,000 --> 00:00:07,500
A long one.

The first cue is only 200 ms long, so a 500 ms pull would end it 300 ms before it began. It is removed and counted; the survivor keeps the number 2.

Cut the tails off every subtitle

Input

1
00:00:01,000 --> 00:00:03,000
Hello there.

Output

1
00:00:01,000 --> 00:00:02,400
Hello there.

A negative offset shortens every cue. This is the usual fix for captions that stay up well past the end of the line and make the file feel behind the audio.

Frequently asked questions

How is this different from the page that moves only the start times?

The two pages change opposite edges, so they fix opposite symptoms. This one keeps the moment each subtitle appears and moves the moment it disappears, which is what you want when captions linger or get cut off early. The starts page keeps the disappearance and moves the appearance, which is what you want when captions show up before or after the line is spoken.

Does delaying the end time make the gap between two subtitles smaller?

Yes, and that is worth watching. Pushing every closing time later leaves the next cue's opening time exactly where it was, so each cue eats into the silence that followed it. Push far enough and consecutive cues touch, or begin to overlap — this page will happily create an overlap, because fixing overlaps is a different job.

Is there a lower limit an end time can be pulled to?

No fixed floor, unlike the starts page which is bounded by zero. An end time can sit anywhere the arithmetic puts it until it reaches its own cue's start, and there it is removed rather than clamped. Clamping it to the start would leave a cue with no duration on screen, which is not something you asked for and not something a viewer can see.

What happens to a cue whose end would land before its own start?

It is dropped, and the count of removed cues is reported next to the count of everything else that happened. Nothing is renumbered afterwards, so the cues on either side keep the numbers they already had, and the gap in numbering is the visible trace of what went.

Which subtitle formats will this page read?

SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON and CSV, each read as whatever it actually is rather than as the extension suggests. Plain text and LRC are refused: neither format writes a closing time into the file, so there would be nothing for the offset to move and the output would be identical to the input.

What symptom tells me I should be moving the ends?

If you read along with the audio and the words are all there at the right moment, but the caption is still on screen after the line has finished, the durations are too long and the ends are the edge to move. If instead the caption disappears while a word is still being spoken, the ends are too early and a negative offset is the fix.

Related tools