← HashitoSystem Home 日本語 Tools Blog
Input and settings
Result

About subtitle drift and the two formats

There are two kinds of drift (constant offset and growing drift)

If the gap is the same from beginning to end, the start position differs and a plain offset in seconds fixes it. If the opening matches but the gap widens towards the end, the playback rate (frame rate) differs. An offset will not fix that; every timecode has to be multiplied by a ratio, which is what the frame rate conversion does.

How to work out the offset

Play the video, note when the first line is actually spoken, and subtract the subtitle start time from it. If the line starts at 0:03.5 but the subtitle appears at 0:01.0, enter +2.5. When a negative offset pushes a cue before zero, it is clamped to 00:00:00,000, because a negative timecode cannot be written. The number of cues clamped this way is shown under the settings.

Format differences between SRT and WebVTT

SRT separates milliseconds with a comma (00:00:01,500) and puts a sequence number before every cue. WebVTT uses a period (00:00:01.500), requires a WEBVTT line at the top, treats cue numbers as optional, and lets you omit the hours field below one hour. Only WebVTT can be loaded into an HTML5 video through a track element, so convert to VTT for the web. This tool detects the input format and writes whichever output you pick.

What happens to WebVTT styling and comments

This tool handles timecode lines and their cue text only. WebVTT NOTE, STYLE and REGION blocks are not carried over to the output. Cue settings written after the timecode (align, line and so on) are preserved when the output is WebVTT, and dropped when the output is SRT because SRT has no equivalent notation.

Frequently asked questions

If the subtitles appear before the dialogue, do I enter a positive or a negative value?

If the subtitles are too early (they appear before the line is spoken), enter a positive number of seconds to push them later. If they lag behind, enter a negative number. If you do not know the offset, play the video, note when the first line is actually spoken, and subtract the subtitle start time from it.

When do I need the frame rate conversion?

Use it when the running length itself differs, for example fitting subtitles authored for 23.976 fps onto a 25 fps video. If the drift starts small and grows towards the end, it is a ratio problem rather than a constant offset. Selecting a source and target frame rate multiplies every timecode by source divided by target.

Is my subtitle file uploaded to a server?

No. Reading, parsing, converting and downloading all happen inside your browser. The contents of your subtitles are never sent to a server.

What is the difference between SRT and WebVTT?

SRT separates milliseconds with a comma (00:00:01,500) while WebVTT uses a period (00:00:01.500). WebVTT requires a WEBVTT line at the top, cue numbers are optional, and the hours field may be omitted below one hour. Only WebVTT can be loaded by the HTML5 track element.