Nothing kills the movie-watching experience faster than subtitles that are two seconds ahead of the dialogue or lagging behind every scene. Out-of-sync subtitles are one of the most common complaints from Plex users, and the causes range from simple offset errors to fundamental format incompatibilities. Here’s how to diagnose and fix every type.
Why Subtitles Go Out of Sync
Subtitle sync issues in Plex typically fall into three categories:
- Constant offset: Subtitles are consistently early or late by a fixed amount (e.g., always 2 seconds behind). This is the easiest to fix
- Progressive drift: Subtitles start in sync but gradually drift further out of alignment. By the end of a 2-hour movie, they might be 10+ seconds off. This usually means the subtitle file was created for a different frame rate version of the video
- Section-based desync: Subtitles are correct for some scenes but wrong for others. This happens when the subtitle file was made for a cut of the movie with different commercial breaks, director’s cut scenes, or intro sequences
Quick Fix: Manual Offset in Plex
For constant offset issues, Plex has a built-in subtitle offset control:
- During playback, open the playback settings (gear icon or swipe up on mobile)
- Look for Subtitle Offset (on most clients, this is under the subtitle/CC menu)
- Adjust in small increments. Positive values delay subtitles; negative values advance them
- Note: This setting is per-session and doesn’t persist between plays on most clients
The limitation: this only works for constant offsets and resets when you stop playback. For a permanent fix, you need to modify the subtitle file itself.
Permanent Fix: SubSync (Automatic)
SubSync is a free tool that automatically syncs subtitles to the audio track of your video. It uses speech recognition to detect when dialogue occurs in the audio and shifts the subtitle timing to match. It handles constant offsets, progressive drift, and even section-based desync.
- Download SubSync from the official GitHub repository
- Load your video file and subtitle file
- Click Sync. SubSync analyzes the audio and adjusts every subtitle timestamp
- Save the corrected subtitle file and replace the old one in your Plex library
Bazarr Integration
If you use Bazarr for automatic subtitle downloading, it has a built-in post-processing option to run SubSync on every downloaded subtitle. This means every subtitle that Bazarr fetches gets auto-synced before Plex ever sees it:
- In Bazarr → Settings → Subtitles, enable “Use Embedded Subtitles” for reference timing
- Under Post-Processing, enable subsync and point it to the SubSync binary
- New subtitles will be synced automatically going forward
Manual Fix: Editing SRT Files
SRT files are plain text. You can open them in any text editor and manually adjust timestamps. Each subtitle entry looks like this:
1
00:01:15,000 --> 00:01:18,500
This is the dialogue text.
For a constant offset, you can use a tool like Subtitle Edit (Windows) or Aegisub (cross-platform) to shift all timestamps by a fixed amount. Select all entries, apply a time shift, and save.
Frame Rate Mismatch (Progressive Drift)
This is the trickiest issue. If your video is 23.976 fps but the subtitle was created for a 25 fps version (common with PAL/NTSC differences), the subtitles will start in sync and gradually drift further apart. By the 2-hour mark, they could be 3–5 minutes off.
To fix frame rate drift:
- In Subtitle Edit, go to Synchronization → Change Frame Rate
- Set “From” to the frame rate the subtitle was made for (often 25 fps for European sources)
- Set “To” to your video’s actual frame rate (check with MediaInfo — usually 23.976 for Blu-ray content)
- Save the adjusted file
Embedded vs External Subtitles
Embedded subtitles (inside the MKV container) are synced to the video by definition — they were muxed at the same time. If embedded subtitles are out of sync, the file itself has a problem (rare but possible with bad encodes). External subtitle files (SRT, ASS, SSA placed alongside the video) are the ones that commonly have sync issues because they may have been sourced from a different release or version of the content.
Best practice: Prefer embedded subtitles when available. They’re guaranteed to match the video’s timing. Use external files only when the embedded track is missing or in the wrong language.
Preventing Sync Issues
- Match subtitle source to video source. Download subtitles specifically tagged for your release (matching the release group, year, and source)
- Use Bazarr with SubSync. Automate the entire subtitle pipeline with automatic sync correction
- Check before watching. Scrub to a scene with clear dialogue in the first 5 minutes. If subtitles are off, fix it before settling in for the movie
- Use SRT over PGS when possible. SRT files are editable and fixable. PGS (bitmap-based) subtitles can’t be easily adjusted for timing