Welcome to FFsubsync’s documentation!

FFsubsync performs language-agnostic automatic synchronization of subtitles with video, so that subtitles are aligned to the correct starting point within the video.

Turn this…

…into this

Unsynchronized subtitles Synchronized subtitles

Point it at a video (or a correctly-synced subtitle file) and an out-of-sync subtitle, and it figures out the time offset — and, if needed, a framerate correction — that lines them up:

$ ffs video.mp4 -i unsynchronized.srt -o synchronized.srt

Prefer not to install anything? There is now a browser version that runs ffsubsync entirely client-side via WebAssembly — nothing is uploaded, and your files never leave your machine: https://smacke.github.io/ffsubsync. See In your browser.

The rest of these docs walk from a five-minute quickstart through the more advanced knobs (reference types, voice-activity detectors, the bulk-sync quality gate) and include a deep dive on character encoding, an area where ffsubsync is unusually robust compared to other subtitle sync tools.

New here? Start with Installation and Usage. Looking for a specific flag? Jump to the CLI reference.

Indices and tables