Synchronize subtitles in Subtitle Edit

Out-of-sync subtitles usually have one of three problems: a constant delay, a gap that grows over time, or a jump partway through. Work out which one you have, then use the tool that fixes it.

Which tool do I need?

Check a line near the start of the video and another near the end. Compare when each subtitle appears with when the line is actually spoken.

What you noticeProblemTool
Every line is off by the same amountConstant offsetAdjust all times
Fine at the start, gets worse over timeSpeed / frame-rate mismatchChange frame rate, Change speed or Visual sync
Off by different amounts at the start and end, and you don't know whyOffset plus driftVisual sync
Jumps at certain points (ad breaks, different cut)Non-linearPoint sync with several points
You have a correctly timed subtitle in another languageAny of the abovePoint sync via other subtitle
Save a copy first

Use File → Save As to keep the original file before you retime. Subtitle Edit also keeps auto-backups, which you can restore from File → Restore Auto Backup.

Adjust all times: fix a constant offset

Open Synchronization → Adjust all times…

  1. Measure the offsetPlay the video and note how far the first line is off. For example, the subtitle appears 2.5 seconds after the line is spoken.
  2. Enter the amountType 00:00:02.500 in the Adjustment field.
  3. Choose the linesChoose All lines, Selected lines only, or Selected lines and forward. The last option is useful when only the second half is off.
  4. ShiftClick Show earlier if the subtitles are late, or Show later if they are early. The dialog stays open, so you can apply the shift again or check against the video.
Speech
Before
After
A constant offset: every subtitle is the same distance from its speech, so one shift fixes all of them.
Before
27
00:02:14,300 --> 00:02:16,900
Keep your voice down.
After: show earlier 2.5 s
27
00:02:11,800 --> 00:02:14,400
Keep your voice down.

Nudge with the keyboard: while the dialog is open, Shift, Ctrl or Alt with ← or → moves the timing in steps of 10, 100 or 500 ms. In frame mode the steps are 1 frame, 10 frames or 1 second.

Visual sync: line up two points

Visual sync fixes an offset and a speed difference together. You match one line near the start and one near the end, and Subtitle Edit stretches or squeezes everything in between in proportion.

Open Synchronization → Visual sync… (use Open video file… at the top if no video is loaded).

  1. Start sceneIn the left pane, pick an early subtitle line from the drop-down. Play the video and use One second back, One second forward and Play 2 secs & back until the video is exactly where that line is spoken.
  2. End sceneIn the right pane, do the same with a line near the end. Find text helps you find a line quickly, and Go to sub pos jumps the video to the line's current time.
  3. SyncClick Sync. Check a line in the middle, then click OK to keep the result.
Speech
Before
After
Drift: the error grows through the file. Matching one start point and one end point corrects every line in between.
Choose clear sync lines

Pick short lines that start right after a pause or a scene cut, so the exact start is easy to hear. Avoid overlapping dialogue.

Point sync: fix jumps and uneven timing

If the timing jumps, for example because the subtitles were made for a TV version with ad breaks, one straight-line correction can't fix it. Point sync lets you set several reference points and times each section between them.

Open Synchronization → Point sync…

  1. Pick a line and find it in the videoSelect a subtitle line and move the video to where it is spoken, using the same navigation buttons as Visual sync.
  2. Set sync pointClick Set sync point. One point applies a simple offset. Two or more points also correct speed.
  3. Add a point after each jumpAdd a point just after every place where the timing changes, and one near the end.
  4. ApplyTo remove a point, right-click it or press Delete. Click OK when you're done.

Point sync via other subtitle

If you have a correctly timed subtitle for the same video, even in another language, use Synchronization → Point sync via other subtitle…. Pair matching lines in the two files, and Subtitle Edit copies the timing from the reference file to yours.

Change frame rate

Subtitles made for a 25 fps (PAL) release drift badly on a 23.976 fps release of the same film, because the PAL version plays about 4% faster. Open Synchronization → Change frame rate…

  1. From frame rateChoose the frame rate the subtitle was timed for, such as 25 (PAL).
  2. To frame rateChoose your video's frame rate, such as 23.976 (NTSC Film). The browse button next to the field detects it from the video file. Use the swap button to swap the two values.
  3. ApplyClick OK.

Built-in choices: 23.976 (NTSC Film), 24 (Film), 25 (PAL), 29.97 (NTSC), 30, 50 (PAL interlaced), 59.94 (NTSC interlaced) and 60.

Timed for 25 fps
00:10:00,000
01:20:00,000
Converted to 23.976 fps (× 25 / 23.976)
00:10:25,626
01:23:25,005

Change speed

Open Synchronization → Change speed… when you know the speed difference as a percentage, or for the common NTSC drop-frame fix.

  • Speed in %: from 1 to 1000. 100 means no change.
  • From drop-frame value: sets 100.1001%.
  • To drop-frame value: sets 99.9001%.
  • Scope: Adjust all, Adjust selected lines or Adjust selected lines and forward.

Click Apply to change the timing and Done to close. If you only know one sync point at each end, Visual sync is usually quicker than working out a percentage.

Fine-tuning on the waveform

After a global fix, a few lines may still start a little early or late. Open the video so FFmpeg can draw the waveform (see setup), then adjust single lines by eye:

  • Drag the start or end edge of a subtitle block on the waveform to line it up with the speech.
  • Turn on snap to shot changes under Options → Settings → Waveform/Spectrogram so subtitles don't cross scene cuts.
  • Afterwards, run Fix common errors to clean up overlaps and gaps that are too short.

Next: convert the synced file to another format →