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/Hin VLC,z/Zin 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 Timestamp | Subtitle 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.
Fixing Sync in Popular Media Players
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) andJ(later).
Fine-Tuning via the Synchronization Menu:
- While the video is playing, go to the top menu: Tools > Track Synchronization (on macOS: Window > Track Synchronization).
- Under the Synchronization tab, locate Subtitle track synchronization.
- 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. - If you have progressive drift, use Subtitle speed: enter
23.976 / 25.000(approx0.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:
- Tap the screen to reveal the controls and tap the Subtitle icon (speech bubble) in the upper right.
- Select Synchronization.
- Use the
+and-buttons to adjust timing by 0.1-second increments. - Alternatively, use a two-finger horizontal swipe gesture across the screen to quickly scrub the subtitle delay backward or forward.
- 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.976to rescale every cue (there is no default key for this).
You can also pass persistent sync adjustments via command line:
mpv --sub-delay=+2.4 video.mkv --sub-file=subtitles.srtPermanent 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)
- In Subtitle Edit, load your Sinhala
.srtfile via File > Open. - Go to Synchronization > Adjust all times (or press
Ctrl + Shift + A). - Enter the exact duration, then click Show earlier or Show later.
- Save the file (File > Save).
Method B: Change Frame Rate (For Progressive Drift)
- Go to Synchronization > Change frame rate.
- Set From frame rate to the source rate (e.g.,
25.000). - Set To frame rate to your video target (e.g.,
23.976). - Click Convert and save your corrected file.
Method C: Point Sync (When Frame Rates Are Unknown)
- Open your video inside Subtitle Edit (Video > Open video).
- Go to Synchronization > Point sync.
- Locate a clear spoken dialogue line near the start of the movie, match it to the video frame, and click Set sync point.
- Locate a second spoken dialogue line near the end of the film (e.g., around minute 80) and click Set sync point again.
- Click OK to recalculate all cue timings across the file.
Media Player Sync Feature Comparison
| Player / Tool | Constant Offset Adjustment | Speed Drift (FPS) Correction | Permanent File Save |
|---|---|---|---|
| VLC Media Player | Yes (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) |
| mpv | Yes (Keys z / Z) | Yes (--sub-speed option) | No (Playback session only) |
| Subtitle Edit | Yes (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.

