Об этом проекте
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:** Можно вызывать программно с пользовательскими обратными вызовами прогресса.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.