Skip to main content
SubtitleMatrix

Find Too-Short Subtitles

Quality checksUnusual cue durations
Or paste subtitle text

Options

A duration — 1000, 1s, 1.5s and 00:00:01,000 all work. This is the line between a subtitle that lingers long enough to be read and one that flashes past. What happens on the wrong side of it depends on the page you are on: closing gaps holds the short cue on screen for longer, taking the added time out of the gap that follows so no cue ever covers the next one's words (the last cue in the file has nothing after it and simply extends), while a check page lists every cue under the line and leaves the file untouched.

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.

A subtitle that is too short flashes past before it can be read: the text is on screen for a fraction of a second, and the viewer either misses it or catches half of it. This page lists every cue that spends less time on screen than the minimum you set, with the cue's timecodes, how long it actually lasts and the minimum it was measured against. The file is not changed — you get a report, as a PDF to read or as a CSV to sort.

The number is why this page is useful rather than a plain count. A list of cue numbers tells you how many problems there are; a row that says 400 ms against 1000 ms tells you how far short the cue falls, and whether it is a cue that needs 200 ms more or one that should not exist at all. The minimum itself is entirely your call — a house style, a broadcaster's requirement or a guess — and it is printed next to every finding so a report read six months later still says what it was judged against.

The limit is inclusive: a cue is reported only when it is shorter than the minimum, so a file cut to exactly the house number comes back clean, and the number you type is the shortest a cue may be rather than the shortest one in trouble. One thing this page deliberately does not do is look at very short durations as evidence of a broken timecode; a repaired zero-length cue does end up lasting one millisecond, and the page that reports that repair is a different one, so a genuinely one-millisecond cue is not flagged here as a defect in its own timing. LRC and plain text are not accepted, because neither stores an end time and a duration cannot be measured from one timestamp.

Examples

A cue that flashes past

Subtitles

1
00:00:01,000 --> 00:00:01,400
Yes.

2
00:00:03,000 --> 00:00:05,000
I was working late.

What the report finds

Cue duration outside the limit — 1 found

Severity   Cues   Start          End            Measured   Limit
Warning    1      00:00:01.000   00:00:01.400   400 ms     1000 ms

Four hundred milliseconds against a minimum of one second. The report prints both numbers side by side, which is what turns this from a count into something the user can act on — this cue needs 600 ms more, or it needs to go.

Exactly at the minimum

Subtitles

1
00:00:01,000 --> 00:00:02,000
Where were you?

2
00:00:03,000 --> 00:00:05,000
I was working late.

What the report finds

Cue duration outside the limit — Nothing found

Cues         2
Checks run   1

One second exactly against a minimum of one second, and nothing is reported. The comparison is strictly less than, not less than or equal, so the limit means the shortest a cue may be — reading it the other way would flag every file cut to exactly the house minimum.

A repaired zero-length timecode

Subtitles

1
00:00:01,000 --> 00:00:02,000
Where were you?

2
00:00:03,000 --> 00:00:03,000
I was working late.

What the report finds

Cue duration outside the limit — 1 found

Lost while reading: Timing × 1

Severity   Cues   Start          End            Measured   Limit
Warning    2      00:00:03.000   00:00:03.001   1 ms       1000 ms

One broken line produces two findings and they are different findings: the header says the timecode could not be read as written, the row says what came out of the repair is 999 ms too short. Reporting only one of them would leave the file's real problem half described.

Frequently asked questions

When is a subtitle too short on this page?

When it stays on screen for less time than the minimum you set, in milliseconds. The comparison is strictly shorter than, so a cue lasting exactly the minimum is not reported. The minimum applies to the whole run and is printed next to every finding it produces.

What minimum duration should I use?

Around one second is the usual working number, which is why it is the default: it is roughly the shortest time a line of a few words can be read in without the viewer having to guess. Longer lines need more, which is a reading-rate question rather than a duration one, and broadcast work sometimes sets its own floor. Whatever you pick, it is yours and not a standard this page is applying.

Does this page shorten or delete short cues?

No. It reads the file and produces a report, leaving every timecode where it was. Lengthening a cue pushes the next one, deleting one leaves a hole, and both of those are decisions with consequences — this page's job is to show you which cues force the decision.

Is a one-millisecond cue reported here?

Only if you set the minimum above one millisecond, which the default does. What the page does not do is treat a very short duration as proof that the timecode was broken: a cue written as 00:00:03,000 to 00:00:03,000 is repaired to one millisecond while the file is read, and that repair is reported on its own page. Here the millisecond is measured against your minimum like any other duration.

How is the duration of a cue worked out?

The cue's end time minus its start time, both read from the file and held as whole milliseconds. Nothing is rounded and no frame rate is involved, so the number in the report is exactly the difference between the two timecodes in the file.

Which subtitle formats can be checked for short cues?

The ten that store both a start and an end time: SRT, WebVTT, ASS, SSA, SBV, SMI, MicroDVD, TTML, JSON and CSV. LRC and plain text are not accepted, because a duration needs two times and neither of those formats has them. Convert first if you need to check a file in one of them.

Why would a cue be too short in the first place?

Almost always from a timing tool rather than from typing. Splitting a long cue in two leaves both halves shorter than the original; a shift that lands a cue on top of the next one gets trimmed by whatever pass ran afterwards; a subtitle extracted from a foreign-language file keeps the timing of the line it was translated from. The result is a cue that exists in the file and never registers with a viewer.

Related tools