Some online video players give you the option to add or subtract delay e.g. by ±0.5s to subtitles to manually sync them to the video currently playing. However I become functionally dyslexic when it comes to actually figuring out how much delay has to be added. I end up randomly adding or subtracting delay and make it work through trial and error.

Is there some rule of thumb I could follow instead to systematically sync subtitles?

all 22 comments

sorted by: hot top controversial new old
[–] 11 points 1 week ago

VLC has hotkey for this. It's pretty easy to tweak with just trial an error and no need to go to settings to guestimate the values.

  • source
  • [–] 7 points 1 week ago (5 children)

    What's your setup? Where are you watching, what format are the subtitles?

  • source
  • hideshow 5 child comments
  • [–] [S] 7 points 1 week ago* (last edited 1 week ago) (4 children)

    I watch movies online in my browser through uhh.. alternative means. Subtitle formats aren't listed explicitly, though I assume it is .lrc given they are imported from opensubtitles.org.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 13 points 1 week ago (3 children)

    Oh so you don't actually have access to the files themselves. That's unfortunate. Then I fear you're at the mercy of whoever wrote that browser plugin.

  • source
  • parent
  • hideshow 3 child comments
  • [–] [S] 3 points 1 week ago (2 children)

    I must restate that the option of syncing subtitles by hand is still available in the interface, as mentioned in the post. It is only the question of how to deterministically set the subtitle delay without resorting to tinkering with the controls randomly.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 8 points 1 week ago

    I get that but I wouldn't know any such way. There are dedicated subtitle tools that can sync audio and text but those need the files. Failing that you can only do it by ear.

    If the subtitle file was downloaded from opensubtitles automatically, there's also the very real possibility that it's the wrong file. It might be the correct movie but the subtitles might be synced to a different framerate and there'd be no way for you to know.

  • source
  • parent
  • [–] 3 points 1 week ago*

    If the subtitles are actual subtitles and not dubs, you can extract timestamps from the audio with a model such as whisper + timestamp support. You could then optimize the overlap of timestamps in the subtitle format (e. g. SRT) with the timestamps provided by the model. That would give you a best fit delay, potentially even shifting over time.

    Given that you're in a browser and don't even have access to the subtitle data, that's a purely theoretical exercise. While it might be possible to retrieve the subtitles from the site / API the browser is using and then set the delay in the browser component as well, that'd be far too much effort vs. switching to a better playback method.

    You could, however, compute the best match and set that manually, if that's all you're after, i. e. skip the automation part. You'd still need to access the source audio and subtitles.

    If the audio is in a different language, all bets are off, there is nothing to sync against. Translations also won't help, since there are multiple ways to translate any given source material, and the origin and length don't match up between languages, naturally.

  • source
  • parent
  • [–] 7 points 1 week ago* (3 children)

    I count the seconds to get in the ball park and fine tweak on the go.

    Line.
    1... 2... 3... 4... 5... 6... 7...
    Subtitles.
    Ok, seven and a half seconds.

  • source
  • hideshow 3 child comments
  • [–] 3 points 1 week ago (2 children)

    I still haven't gotten straight which way plus and minus are. Should I go minus if the subtitle is coming late? Or plus?

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 1 week ago

    Subtitles are glorified text files, each line has a timestamp, like

    00:07:34,480 --> 00:07:38,080 Exterminate! Exterminate!

    This tells the player to display the line from 7 minutes, 34 seconds, 480 milliseconds until 7 minutes, 38 seconds, 80 milliseconds.

    If you want the subtitles to be earlier, you're subtracting from those times so it's minus, if you want them to be later, you're adding so it's plus.

  • source
  • parent
  • [–] 1 point 1 week ago

    I don't know what software you are using and if they are indicating the direction of error or correction, but I trust if you try it you'll figure it out.

    Put on media with properly synchronized subtitles. Change to plus five. Are the subs behind or ahead of audio? Make a note. Now you know.

  • source
  • parent
  • [–] 4 points 1 week ago* (3 children)

    Trial and error, basically. Change the delay, wait a second and then see if it makes it better or worse (at least for VLC there is a delay in the setting actually changing the sync in my experience so you need to give it a second to see the difference). Repeat until it's perfect.

    It also helps to do this in a dialogue heavy scene so you can match the audio to mouth movement.

  • source
  • hideshow 3 child comments
  • [–] [S] 2 points 1 week ago* (last edited 1 week ago) (2 children)

    There must be a better way to do this though. I waste too much time tinkering with the syncing at times.

    I realised what I'm asking for is essentially a modified version of 'trial and error'. I should clarify that I'm looking for a technique I could follow to instead of clicking buttons and modifying values by pure randomness and hoping the subtitles sync.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 6 points 1 week ago

    So you just want a better system than "completely at random". Fair enough. Here's what I'd do:

    1. After the first line is uttered, see if the subtitles are late or early. Pause.
    2. Adjust the delay, let's say -1.0 second (or more if the difference between them felt really long).
    3. Skip back to before the line was heard, and play. Is the gap better or worse? If it's worse, then you need to change the delay in the other direction (+1.0 instead of -1.0). If it's better, the direction you used was good.
    4. Repeat step 3 until you get that one line synced perfectly.
    5. Enjoy the rest of the movie/episode.

    Disclaimer: I've never had this problem (that I remember), subtitles have always been either synced or completely out of my control. I don't use 'alternative means' much.

  • source
  • parent
  • [–] 2 points 1 week ago*

    I usually just find a short isolated piece of dialogue (or the first spoken word) and count the time between the audio and the subs, whichever comes first. That usually gets me close to +/- 1s. Then I micro adjust from there.

    You just gotta remember that a negative offset makes the subs appear earlier, and vice versa for a positive offset.

  • source
  • [–] 2 points 1 week ago

    I believe we use the same platform.

    I can never remember either. I estimate the lag, go one way, and if it's worse I go the other way and try to remember while I adjust.

  • source
  • [+] -7 points 1 week ago* (4 children)

    By default, they are synced by the subtitle creator. I have only had to modify probably 2 videos ever, in my life.

    The rule of thumb is: don't mess with the syncing. It's already synced.

  • source
  • hideshow 4 child comments
  • [–] 5 points 1 week ago (1 child)

    I think the problem arises mostly from trying to add subtitles to arrrr creatively acquired videos where the settings of the creator were not adhered to in the strictest sense.

    I mean, I totally wouldn't know about that myself, I just heard about it online.

  • source
  • parent
  • hideshow 1 child comment