# smacke/ffsubsync

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/smacke-ffsubsync).**

7,576 stars · 313 forks · Python · mit

## Links

- GitHub: https://github.com/smacke/ffsubsync
- awesome-repositories: https://awesome-repositories.com/repository/smacke-ffsubsync.md

## Topics

`alignment` `audio` `caption` `captions` `fast-fourier-transform` `ffmpeg` `fft` `speech-detection` `srt` `srt-subtitles` `string-alignment` `subtitle` `subtitles` `sync` `synchronization` `vad` `video` `vlc` `vlc-media-player` `voice-activity-detection`

## Description

ffsubsync is a subtitle synchronization tool that aligns subtitle timestamps to audio tracks or reference files using voice activity detection and FFmpeg. It functions as an audio-based subtitle aligner that analyzes speech patterns within a video audio stream to correct timing.

The system provides capabilities for cross-language subtitle synchronization, allowing an unsynchronized file to be aligned using a correctly timed subtitle file in a different language as a reference. It also includes a remote media timing engine that streams audio references from network URLs to perform synchronization without downloading full media files.

The tool covers a broad range of media processing tasks, including audio track synchronization via voice activity detection and reference-based timing alignment using cross-correlation signal matching.

## Tags

### Content Management & Publishing

- [Subtitle Synchronization](https://awesome-repositories.com/f/content-management-publishing/media-management/subtitle-management-systems/subtitle-synchronization.md) — Corrects the timing of subtitle files to match spoken audio using automated voice detection.
- [Cross-Language Synchronization](https://awesome-repositories.com/f/content-management-publishing/media-management/subtitle-management-systems/subtitle-synchronization/cross-language-synchronization.md) — Aligns unsynchronized subtitle files using a correctly timed version in a different language as a reference.
- [Video Accessibility Tools](https://awesome-repositories.com/f/content-management-publishing/video-accessibility-tools.md) — Improves video accessibility by ensuring subtitles are perfectly synchronized with the audio track.

### Artificial Intelligence & ML

- [Voice Activity Detection](https://awesome-repositories.com/f/artificial-intelligence-ml/voice-activity-detection.md) — Uses voice activity detection to identify speech boundaries and create timing maps for subtitle alignment.

### Data & Databases

- [Subtitle Reference Alignment](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/sensor/timing-alignment/subtitle-reference-alignment.md) — Adjusts subtitle timestamps by calculating the linear offset between a target file and a synchronized reference.

### Graphics & Multimedia

- [Audio-Text Cross-Correlation](https://awesome-repositories.com/f/graphics-multimedia/audio-text-cross-correlation.md) — Implements signal-processing cross-correlation to align subtitle timestamps with audio voice activity peaks.
- [FFmpeg Subtitle Synchronizers](https://awesome-repositories.com/f/graphics-multimedia/ffmpeg-subtitle-synchronizers.md) — Aligns subtitle timing to audio tracks or reference files using voice activity detection and FFmpeg.
- [Remote Audio Sampling](https://awesome-repositories.com/f/graphics-multimedia/audio-music/audio-streaming-engines/raw-audio-sample-streaming/remote-audio-sampling.md) — Extracts audio data from network URLs using external tools to avoid downloading full media files.
- [Remote Media Timing References](https://awesome-repositories.com/f/graphics-multimedia/remote-media-timing-references.md) — Provides the ability to stream timing references from network URLs to synchronize subtitles without downloading entire media files. ([source](https://cdn.jsdelivr.net/gh/smacke/ffsubsync@master/README.md))
