Troubleshooting•September 21, 2026•Updated October 1, 2026• 10 min read

How to Sync Out-of-Sync Sinhala Subtitles: Fixing Delay and Speed Drift

Akash MakesWritten by Akash Makes

Quick Answer: Subtitle desynchronization comes in two distinct types: Constant Offset (the subtitles appear a fixed number of seconds too early or too late throughout the entire video) and Progressive Speed Drift (sync is accurate at the beginning but drifts further out of sync as the movie progresses). Constant offsets are fixed instantly with player hotkeys (G / H in VLC, z / Z in mpv, or the Sync slider in MX Player). Progressive drift is almost always caused by a frame rate mismatch (such as 23.976 fps vs. 25.000 fps) and requires either frame rate conversion in Subtitle Edit or adjusting the subtitle playback speed multiplier.


Constant Delay vs. Progressive Speed Drift

When you load a Sinhala subtitle track and the dialogue does not match the actors' lips, the first step is diagnosing which type of sync error you are dealing with. Treating a progressive frame rate drift as a simple offset will leave you constantly adjusting delays every ten minutes. If your Sinhala text displays incorrectly with broken characters, see our guide on fixing broken Sinhala characters.

1. Constant Offset (Fixed Delay)

In a constant offset, every single cue in the file is displaced by the exact same time interval:

  • Symptom: At minute 02:00, the subtitle is exactly 1.8 seconds early. At minute 45:00, it is still exactly 1.8 seconds early. At minute 90:00, it is still 1.8 seconds early.
  • Cause: Video editions have different intros. For instance, a digital streaming release (WEB-DL) might include a 5-second animated studio logo before the opening scene, whereas a physical disc rip begins immediately with dialogue.
  • Fix: Shift all timestamps forward or backward by that exact duration.

2. Progressive Speed Drift (Frame Rate Mismatch)

In progressive drift, the time difference between audio and text expands linearly over time:

  • Symptom: Near the start, the subtitles are almost in sync. By minute 10:00, they appear about 25 seconds ahead of the speech. By minute 60:00, they appear about 2.5 minutes ahead.
  • Cause: The subtitle timestamps were authored against a video running at a different frame rate (such as 25.000 fps European PAL broadcast vs. 23.976 fps cinematic film).
  • Fix: Frame rate recalculation or speed multiplication across all cues.

The Math Behind Frame Rate Drift: A Worked Example

To understand why speed drift occurs, consider how video frames map to real-world seconds. Most streaming and NTSC-derived video releases run at 23.976 frames per second (a slightly slowed form of cinema's 24 fps). In contrast, European television broadcasts and PAL DVDs run at 25.000 frames per second.

When a 24 fps film is prepared for European PAL broadcast, studios traditionally speed up the film by roughly 4% so that 24 film frames play in 25 video frames each second.

Speed ratio = 25.000 ÷ 23.976 ≈ 1.04271

This means the PAL version runs 4.271% faster than the 23.976 fps release.

Real-World Drift Calculation

Suppose you downloaded or translated a Sinhala subtitle file timed for a 25.000 fps PAL broadcast, but you are playing a 23.976 fps WEB-DL video file:

Movie TimestampSubtitle Cue Time (PAL 25 fps)Expected Video Time (23.976 fps)Discrepancy (Drift)
00:01:00 (1 min)00:01:00,000 (60.0 s)00:01:02,562 (62.56 s)Subtitle is 2.56 seconds early
00:10:00 (10 min)00:10:00,000 (600.0 s)00:10:25,626 (625.62 s)Subtitle is 25.6 seconds early
00:30:00 (30 min)00:30:00,000 (1,800.0 s)00:31:16,878 (1,876.88 s)Subtitle is 1 minute 16.8 seconds early
01:30:00 (90 min)01:30:00,000 (5,400.0 s)01:33:50,634 (5,630.63 s)Subtitle is 3 minutes 50.6 seconds early

By the 90-minute mark, the subtitle is almost four minutes ahead of the video! Pressing your media player's delay shortcut will fix one scene, but within two minutes, the cues will drift out of sync again.

For an overview of how timestamps are formatted in different subtitle files, see our breakdown of SRT vs VTT subtitle formats.


If you are watching a video right now and want to fix sync during playback, here are the step-by-step methods for major media players:

1. VLC Media Player (Windows & macOS)

VLC provides instantaneous keyboard shortcuts for constant offsets:

  • Shortcut G: Decreases subtitle delay by 50ms (subtitles appear earlier).
  • Shortcut H: Increases subtitle delay by 50ms (subtitles appear later).
  • These are the Windows and Linux defaults. On macOS, VLC uses H (earlier) and J (later).

Fine-Tuning via the Synchronization Menu:

  1. While the video is playing, go to the top menu: Tools > Track Synchronization (on macOS: Window > Track Synchronization).
  2. Under the Synchronization tab, locate Subtitle track synchronization.
  3. Enter positive values (e.g., +2.500 s) if subtitles appear too early, or negative values (e.g., -1.200 s) if they appear too late.
  4. If you have progressive drift, use Subtitle speed: enter 23.976 / 25.000 (approx 0.959) or adjust the factor until the dialogue locks into place.

For a broader setup guide, check out how to add Sinhala subtitles to any video player.


2. MX Player (Android)

MX Player is one of the most widely used Android video players in Sri Lanka. It supports intuitive on-screen gestures and a dedicated sync menu:

  1. Tap the screen to reveal the controls and tap the Subtitle icon (speech bubble) in the upper right.
  2. Select Synchronization.
  3. Use the + and - buttons to adjust timing by 0.1-second increments.
  4. Alternatively, use a two-finger horizontal swipe gesture across the screen to quickly scrub the subtitle delay backward or forward.
  5. If the subtitles suffer from progressive speed drift, tap the three dots in the subtitle menu, select Speed, and tweak playback speed by percentage increments (e.g., 96% or 104%).

3. mpv Media Player (Cross-Platform)

For power users, mpv offers lightweight and instantaneous subtitle adjustments:

  • Press z: Shifts subtitles 100ms earlier.
  • Press Z (Shift + z): Delays subtitles by 100ms.
  • For frame-rate drift, start mpv with --sub-speed=25/23.976 to rescale every cue (there is no default key for this).

You can also pass persistent sync adjustments via command line:

bash
mpv --sub-delay=+2.4 video.mkv --sub-file=subtitles.srt

Permanent Fixes Using Subtitle Edit

Adjusting delay in your player is convenient for a single viewing session, but it does not modify the underlying .srt file. If you want to permanently fix the subtitle file so it works seamlessly on Smart TVs, mobile phones, or streaming boxes, use Subtitle Edit (a free, open-source subtitling suite).

Method A: Adjust All Times (For Constant Offset)

  1. In Subtitle Edit, load your Sinhala .srt file via File > Open.
  2. Go to Synchronization > Adjust all times (or press Ctrl + Shift + A).
  3. Enter the exact duration, then click Show earlier or Show later.
  4. Save the file (File > Save).

Method B: Change Frame Rate (For Progressive Drift)

  1. Go to Synchronization > Change frame rate.
  2. Set From frame rate to the source rate (e.g., 25.000).
  3. Set To frame rate to your video target (e.g., 23.976).
  4. Click Convert and save your corrected file.

Method C: Point Sync (When Frame Rates Are Unknown)

  1. Open your video inside Subtitle Edit (Video > Open video).
  2. Go to Synchronization > Point sync.
  3. Locate a clear spoken dialogue line near the start of the movie, match it to the video frame, and click Set sync point.
  4. Locate a second spoken dialogue line near the end of the film (e.g., around minute 80) and click Set sync point again.
  5. Click OK to recalculate all cue timings across the file.

Media Player Sync Feature Comparison

Player / ToolConstant Offset AdjustmentSpeed Drift (FPS) CorrectionPermanent File Save
VLC Media PlayerYes (Hotkeys G / H or Track Sync)Yes (Speed multiplier in Track Sync)No (Playback session only)
MX Player (Android)Yes (On-screen menu & 2-finger swipe)Yes (Subtitle speed percentage)No (Playback session only)
mpvYes (Keys z / Z)Yes (--sub-speed option)No (Playback session only)
Subtitle EditYes (Adjust all times: Ctrl + Shift + A)Yes (Change frame rate & Point Sync)Yes (Writes directly to file)

If you are preparing translated subtitles for distribution or family viewing, taking two minutes in Subtitle Edit to save the file permanently will save hours of manual adjustment on television sets.

You can also use the SriSubs subtitle translator to review translated cues against original source timestamps before exporting.


Subtitle Timing Best Practices

Whether you are authoring new Sinhala subtitles from scratch or editing a machine-translated output, follow these timing guidelines for a smooth viewing experience:

  • Minimum display time: Each subtitle should remain on screen for at least 1 second (even for single words)
  • Reading speed: Keep each cue at or below about 15–17 characters per second
  • Gap between cues: Maintain at least two frames (about 80ms) of black screen between consecutive subtitles
  • Maximum line length: Aim for no more than 40 characters per line in Sinhala to prevent wrapping on standard screens
  • Avoid sentence splits across scenes: Never let a subtitle span a scene cut; the text should clear before the visual cut

When translating with SriSubs, all timestamps from your original SRT or VTT file are preserved exactly — only the dialogue text is changed.


Frequently Asked Questions

Why do my Sinhala subtitles go out of sync only after commercial breaks?

If you are watching video content recorded from television broadcasts, the video may have had commercial breaks excised, whereas the subtitle file was timed to an unedited broadcast (or vice versa). In this scenario, the subtitle will sync perfectly until the first break, jump out of sync by 2 to 3 minutes, and jump again at each subsequent commercial. The only solution is to split the subtitle cues in Subtitle Edit and offset each segment independently.

Does translating a subtitle into Sinhala change its sync?

Translating text should never alter cue start and end timestamps. In SriSubs, original millisecond timestamps are preserved with zero drift. However, because Sinhala phrasing can differ in length from English, you may occasionally want to extend cue end times slightly if the viewer needs more time to read a complex sentence.

How do I check the exact frame rate of my video file?

In VLC, press Ctrl + J (or Window > Media Information on macOS) and navigate to the Codec Details tab. Look for the "Frame rate" field (e.g., 23.976024 or 25.000000). Alternatively, use the free utility MediaInfo to inspect full container details.

Why do subtitles get out of sync on my Smart TV when they worked on my PC?

Some Smart TV media players do not parse millisecond fractions correctly or experience container clock sync lag when streaming over USB 2.0. Converting your subtitles from WebVTT to standard SubRip (.srt) and ensuring file names match the video file exactly will resolve most television playback bugs. For more on file format differences, see our SRT vs VTT comparison.

Akash Makes

Akash Makes

Developer & editor, SriSubs

Akash Makes is an IT undergraduate at SLIIT and a full-stack developer, with hands-on experience building web applications in React, Next.js, and Node.js. He built SriSubs to help Sri Lankans get Sinhala subtitles that actually sound like natural spoken Sinhala, not stiff textbook translations. He maintains SriSubs independently, handling everything from the translation engine to the content on this site.