Об этом проекте

FFsubsync — это языконезависимый инструмент командной строки, библиотека Python и браузерная утилита для автоматической синхронизации субтитров с видео или эталонными файлами субтитров. Он согласует временные метки текста с правильными начальными точками в мультимедийных файлах. ### Как это работает Основной алгоритм синхронизации состоит из трех основных этапов: 1. Дискретизация аудиопотока видеофайла и субтитров на окна по 10 мс. 2. Определение наличия речи в каждом окне. Субтитры анализируются напрямую, а аудиопотоки обрабатываются с помощью готовых детекторов речевой активности (VAD), таких как встроенный в WebRTC. 3. Выравнивание полученных бинарных строк путем максимизации совпадений через сверточный подход на основе быстрого преобразования Фурье (БПФ), что снижает вычислительную сложность до O(n log n). ### Ключевые особенности - **Несколько типов референсов:** Синхронизация с видеофайлами, аудиофайлами, правильно синхронизированными эталонными файлами субтитров (.srt) или удаленными URL-адресами. - **Браузерная версия:** Полностью клиентское выполнение без установки благодаря WebAssembly (ffmpeg.wasm), гарантирующее сохранение файлов локально. - **Надежное определение кодировки:** Автоматическое определение устаревших текстовых кодировок субтитров (таких как Windows-1251, GBK, Shift-JIS и UTF-16 с BOM) с использованием нескольких резервных детекторов. - **Расширенные параметры синхронизации:** Поддержка коррекции частоты кадров, поиска золотого сечения, кусочно-линейного выравнивания (`--split-penalty`) для разрывов в середине файла и альтернативных бэкендов VAD (Auditok, Silero/PyTorch). - **Поддержка Docker:** Готовые образы контейнеров доступны через GitHub Container Registry. - **API библиотеки Python:** Можно вызывать программно с пользовательскими обратными вызовами прогресса.