Subtitle shifter & converter
All tools

Fix subtitle delay in VLC

VLC can push subtitles earlier or later while the video plays. Find the right delay in the player, then shift the file once so it stays in sync everywhere.

…or drop it here. SRT, VTT, ASS, SSA or TXT. Files are processed on your device and never uploaded.

sample.srtLoading…

 

Move subtitles by a fixed amount when every line is off by the same delay.

Seconds (2.5), milliseconds (1500ms) or a time (00:00:02,500). Subtitles appear too early → Later.

Cues

     

    Save options

    Output preview

    
    

    How to fix subtitle delay in VLC

    1. Watch the first clear line of dialogue. Pause on a moment where one person starts speaking after a silence, so it is easy to see whether the subtitle is early or late.
    2. Press H or G. On Windows and Linux press H if the subtitle appears too early (it moves 50 ms later per press) and G if it appears too late. On a Mac use J and H. VLC shows the new delay in the corner of the video.
    3. Set an exact value if you know it. Open Tools → Track Synchronization (Playback → Track Synchronization on a Mac) and type the delay in seconds in “Subtitle track synchronization”.
    4. Make it permanent. Note the final delay, open the subtitle file below, enter the same value with the same sign and download the corrected file.

    VLC subtitle delay shortcuts

    VLC’s default hotkeys change the subtitle delay in steps of 50 milliseconds, so 20 presses move the subtitles by one second. The keys differ between Windows/Linux and macOS:

    KeyWhat it doesStep / where
    HSubtitle delay +50 ms (subtitles later)Windows, Linux
    GSubtitle delay −50 ms (subtitles earlier)Windows, Linux
    JSubtitle delay +50 ms (subtitles later)macOS
    HSubtitle delay −50 ms (subtitles earlier)macOS
    Shift+H, Shift+J, Shift+KMark the spoken line, mark its subtitle, apply the differenceAll desktops
    Ctrl+Shift+K (⌘+Shift+K on Mac)Reset the synchronisation set with Shift+KAll desktops

    The on-screen message after each press, such as Subtitle delay 350 ms, is the total delay. A positive delay means VLC shows the subtitles later; a negative one shows them earlier. In the Track Synchronization dialog the same value is labelled “(Delayed)” when it is positive and “(Hastened)” when it is negative. You can rebind any of these keys in Tools → Preferences → Hotkeys (search for “subtitle delay”).

    Sync by ear with Shift+H, Shift+J and Shift+K

    For large offsets, pressing H forty times is tedious. VLC has a quicker method: press Shift+H the moment you hear a distinctive line, press Shift+J when that line’s subtitle appears, then press Shift+K. VLC sets the delay to the gap between the two marks in one step. Ctrl+Shift+K resets it.

    Set an exact delay in Track Synchronization

    When you already know the offset, for example because the subtitles are exactly 2.5 seconds late in every scene, open Tools → Track Synchronization on Windows or Linux, or Playback → Track Synchronization on macOS. In the Synchronization tab, type the value in seconds into “Subtitle track synchronization”: -2.500 for subtitles that are 2.5 seconds late, 2.500 for subtitles that are 2.5 seconds early. The box accepts up to three decimals and up to ±600 seconds.

    The same dialog has “Subtitle speed” and “Subtitle duration factor” fields. Speed is for subtitles that drift, which a fixed delay cannot fix; leave it at 1 unless you know the frame-rate ratio, and see two-point sync for a file-based fix.

    VLC on Android, iPhone and iPad

    The mobile apps have no keyboard shortcuts, but both have a subtitle delay control. On Android, tap the video to show the controls, tap the subtitles/audio track icon (the speech bubble), open the menu next to “Subtitles” and choose Subtitle delay. Use the − and + buttons to move the subtitles in small steps and watch the value change. On iPhone and iPad, open the playback options (the “…” button) during playback and choose the subtitle delay control. Menu layouts change between app versions, so look for “delay” if the button has moved.

    On mobile the delay usually resets when you close the video, which is a good reason to fix the file itself once you have found the right value.

    Why the delay resets — and how to keep it

    VLC’s delay is a playback setting, not an edit. It applies to the current video only and is gone when you open the next file, restart VLC or play the same subtitles on a TV or phone. To keep the fix, change the timestamps in the subtitle file itself:

    1. Note the delay VLC shows when the subtitles look right, for example 1250 ms.
    2. Enter it in the box below. A positive VLC delay becomes a shift later, a negative one a shift earlier, by the same amount.
    3. Click the button to copy it into the shift tool above, open your SRT, VTT or ASS file, click Apply shift and download.

    Player delay → file shift

    Shift the file 1.250 s later (+1250 ms).

    Reset the delay in VLC to 0 before checking the new file, or the correction will be applied twice. If the subtitles are right at the start but wrong later, the problem is drift, not delay: use two-point sync or the frame-rate converter.

    Other players

    FAQ

    Which key delays subtitles in VLC?

    On Windows and Linux, H adds 50 ms of delay so the subtitles appear later, and G removes 50 ms so they appear earlier. On a Mac the keys are J (later) and H (earlier).

    Why do the G and H keys do nothing in VLC?

    The video window needs keyboard focus, so click on the picture first. The keys also do nothing when no subtitle track is active, and they may have been rebound in Tools → Preferences → Hotkeys.

    Does VLC save the subtitle delay?

    No. The delay applies only while the current video plays. To keep it, apply the same delay as a shift to the subtitle file and save a new copy.

    Can VLC fix subtitles that drift over time?

    Partly: Track Synchronization has a Subtitle speed setting. It is easier to fix the file once with two-point sync or a frame-rate conversion, because that works in every player.