FFsubsync: an open-source tool that realigns drifted subtitles by listening to the audio track

Summary

An open-source utility that detects speech in a video audio track and shifts a mismatched subtitle file back into place, correcting frame rate drift as well, usable from the command line or in a browser page.

Recommend
Name
FFsubsync
Version
0.5.1
Pricing
Free
Open source
Open source
Operating system
WindowsmacOSLinux
Updated
2026-10-06 18:16

When the subtitles and the voices do not line up

A subtitle file pulled from the internet almost never comes from the same release as the video it is played against. One copy is cut for a cinema print, another for a disc, a third for a streaming version, and every one of those has a few seconds of logo, recap or silence in a different place. The result is the familiar annoyance: the lines arrive two or three seconds before anyone speaks, or trail behind by the same margin, and stay wrong for the whole film.

Fixing it by hand means opening the file in an editor, nudging a global offset, listening, nudging again, then walking through the file line by line wherever a cut has shifted things further. For a two-hour film that is an evening of tedious work with no guarantee of a clean result. FFsubsync is built for exactly this chore: hand it the video and the subtitle file and it works out how far the text has to move. It is open source under a permissive licence, free for individual use, and as of 2026-09 the project is still being maintained, with the current 0.5.1 release put out in 2026-07.

The idea: listen for speech, never read the lines

The alignment method has nothing to do with language, which is what makes it work on files nobody has annotated. The tool runs speech activity detection over the audio track to find the stretches where someone is actually talking, then does the same for the subtitle file by looking at when lines appear. That gives two sequences of time intervals, one from the sound and one from the text.

FFsubsync subtitle synchronisation tool

The two sequences are then matched against each other in the frequency domain: the tool transforms them, finds the shift that makes them overlap best, and converts that shift back into a number of seconds. Since no word is ever compared, a Chinese, English or Japanese subtitle file is treated exactly the same way, and nothing has to be labelled first. For the most common problem, a subtitle file that is uniformly early or late, the correction is usually right on the first attempt.

Not only a shift: frame rate drift as well

A second kind of mismatch is not a constant offset at all. A subtitle file authored for a 23.976 frames per second master and played against a 25 frames per second version starts nearly right and ends minutes off, because the error accumulates with every minute of runtime. Shifting the whole file cannot repair that, no matter what value is chosen.

FFsubsync infers the ratio between the timing of the reference and that of the input file and rescales the text accordingly, so the drift is taken out rather than pushed to one end. For awkward cases it also offers further search strategies, including a golden section search. It reads and writes the common subtitle formats, and newer versions add support for the WebVTT format used on the web, can take a Blu-ray PGS subtitle stream as the alignment reference, and detect the encoding of a file automatically so that garbled characters stop being a separate chore.

Mostly a command line tool, but also a page in the browser

The main form of FFsubsync is a command line program installed through a package manager. It relies on an audio and video conversion utility to pull the track out of the container, runs on Windows, macOS and Linux, and ships an official container image for anyone who would rather put it on a server than on a laptop.

For people who do not want to install anything there is also an official browser page: open it, drop in the video and the subtitle file, and the synchronisation happens locally, which suits the occasional user who needs this once every few months. Beyond the basic run, the tool accepts a second subtitle file as the reference to align against, and can be paired with a speech transcription utility when no usable reference subtitle exists at all.

Who it is for, and where it stops

The obvious user is someone who watches series and films with separately downloaded subtitle files and keeps running into releases that do not match. There, one command usually settles it. Someone tidying a local library can go a step further and put the tool inside a script so that a whole folder is processed without supervision.

The limit is worth stating plainly: FFsubsync solves the question of timing and nothing else. If the text itself has missing lines, wrong translations or plain mistakes, the alignment will be perfect and the subtitles will still be wrong, and that needs a different answer. The tool costs nothing and the source is public, so the sensible first step is to try it on a file already at hand, either through the browser page or with a single command on the machine.

FFsubsyncDownload
Supported systems: Windows macOS Linux