How to Fix Subtitle Timing That's Slightly Off

March 2026 · 6 min read

Your subtitles are almost perfect — but they're showing up a second too early, or half a second too late. It's distracting. The good news: this is one of the easiest problems to fix.

There are two types of sync issues:

Here's how to fix both, from easiest to most powerful.

Method 1: Adjust in Your Video Player (Quickest)

Every good video player lets you shift subtitle timing on the fly. This doesn't modify the .srt file — it just adjusts the display offset during playback.

VLC

  • Press H to shift subtitles earlier by 50ms
  • Press G to shift subtitles later by 50ms
  • Hold the key to shift in larger increments
  • The current offset is shown briefly on screen

MPV

  • Press Z to shift subtitles earlier by 100ms
  • Press X to shift subtitles later by 100ms
  • The delay value appears in the on-screen display

MPC-HC

  • Press F1 to decrease subtitle delay
  • Press F2 to increase subtitle delay
  • Or right-click → Subtitles → Subtitle Delay

PotPlayer

  • Press < to shift subtitles earlier
  • Press > to shift subtitles later
  • Or right-click → Subtitles → Subtitle Sync

💡 Tip: Player-based adjustment is temporary — it resets when you close the video. If you need a permanent fix, use one of the methods below to modify the .srt file itself.

Method 2: SubtitleEdit (Best GUI Tool)

SubtitleEdit is a free, open-source subtitle editor for Windows (runs on Linux via Mono). It's the gold standard for subtitle editing.

Fix a constant offset

  1. Open your .srt file in SubtitleEdit
  2. Go to Synchronization → Adjust All Times (or press Ctrl+Shift+A)
  3. Enter the offset — e.g., +1500ms to shift all subtitles 1.5 seconds later, or -800ms for 0.8 seconds earlier
  4. Click OK and save

Fix drift (progressive desync)

  1. Open your .srt file in SubtitleEdit
  2. Go to Synchronization → Point Sync (or Visual Sync)
  3. Set two sync points: one near the beginning and one near the end of the video
  4. For each point, match a subtitle line to when the corresponding dialogue actually occurs in the video
  5. SubtitleEdit linearly adjusts all timestamps between the two points

This is incredibly effective for drift. Two points are usually enough to fix even severe desync across a 2-hour video.

Edit individual lines

You can also click any subtitle line and manually drag its start/end times. Useful for fixing one or two lines that are slightly off while the rest are fine.

Method 3: Aegisub (Advanced Editor)

Aegisub is a more advanced subtitle editor, originally built for anime fansubbing. It's powerful but has a steeper learning curve.

  1. Open your .srt file (Aegisub auto-converts to its own format)
  2. Select all lines (Ctrl+A)
  3. Go to Timing → Shift Times
  4. Enter the offset (positive = later, negative = earlier)
  5. Apply and export as .srt (File → Export Subtitles)

Aegisub also has an audio waveform view that lets you visually align subtitle timing to the audio. This is overkill for most people, but incredibly precise if you need per-line timing perfection.

Method 4: ffmpeg Command Line (No GUI Needed)

If you prefer the command line, ffmpeg can shift subtitle timing without any GUI tool. This is perfect for scripts or batch operations.

Shift all subtitles by a fixed offset

To shift subtitles 2 seconds later:

ffmpeg -itsoffset 2 -i video.en.srt -c copy video_fixed.en.srt

To shift subtitles 1.5 seconds earlier:

ffmpeg -itsoffset -1.5 -i video.en.srt -c copy video_fixed.en.srt

Alternative: use sed for simple shifts

For Linux/macOS users, you can also write a simple script to shift all timestamps. But honestly, ffmpeg is easier and less error-prone for this.

Method 5: Edit the .srt File Manually

SRT files are plain text. You can open them in any text editor (Notepad, VS Code, nano) and manually adjust timestamps. Here's what an SRT file looks like:

1
00:00:05,200 --> 00:00:08,400
Hello, how are you today?

2
00:00:09,100 --> 00:00:12,300
I'm doing well, thank you.

3
00:00:13,500 --> 00:00:16,800
That's great to hear.

The format is: HH:MM:SS,mmm --> HH:MM:SS,mmm (hours:minutes:seconds,milliseconds).

To shift everything 1 second later, you'd add 1000 to every millisecond value. This is tedious by hand but possible for small files. For anything more than a few lines, use SubtitleEdit or ffmpeg.

Why Subtitles Go Out of Sync

Understanding the cause helps prevent the problem:

💡 With JAVSubs: Since subtitles are generated directly from your specific video file, you won't get the "different version" problem. The timing is based on your exact audio track. If you notice slight offsets, it's usually at the individual line level — and JAVSubs uses word-level timestamps from Whisper to minimize this.

Quick Decision Guide

Generate accurate subtitles from the start

JAVSubs uses word-level timestamps for precise timing. When sync issues do occur, your .srt files are easily fixable with the tools above.

Buy Now — $25