À propos du projet

FFsubsync est un outil en ligne de commande indépendant de la langue, une bibliothèque Python et un utilitaire basé sur navigateur permettant de synchroniser automatiquement des sous-titres avec des vidéos ou des fichiers de sous-titres de référence. Il aligne les minutages du texte sur les points de départ corrects dans les fichiers multimédias. ### Fonctionnement L'algorithme de synchronisation principal fonctionne en trois étapes majeures : 1. Discrétise à la fois le flux audio du fichier vidéo et les sous-titres en fenêtres de 10 ms. 2. Détermine si chaque fenêtre contient de la parole. Les sous-titres sont analysés directement, tandis que les flux audio sont examinés à l'aide de détecteurs d'activité vocale (VAD) prêts à l'emploi, comme celui intégré à WebRTC. 3. Aligne les chaînes binaires obtenues en maximisant les correspondances grâce à une approche de convolution par transformée de Fourier rapide (FFT), réduisant la complexité temporelle à O(n log n). ### Caractéristiques principales - **Types de références multiples :** Synchronisation par rapport à des fichiers vidéo, des fichiers audio, des fichiers de sous-titres de référence correctement synchronisés (.srt) ou des URL distantes. - **Version navigateur :** Fonctionne entièrement côté client sans installation via WebAssembly (ffmpeg.wasm), garantissant que les fichiers restent en local. - **Détection d'encodage robuste :** Déduit automatiquement les encodages de texte de sous-titres hérités (tels que Windows-1251, GBK, Shift-JIS et UTF-16 avec BOM) à l'aide de plusieurs détecteurs de repli. - **Options de synchronisation avancées :** Prend en charge la correction de la fréquence d'images, les ratios de recherche par section dorée, l'alignement par morceaux (`--split-penalty`) pour les coupures en milieu de fichier, ainsi que des moteurs VAD alternatifs (Auditok, Silero/PyTorch). - **Prise en charge de Docker :** Images de conteneurs préconstruites disponibles via GitHub Container Registry. - **API de bibliothèque Python :** Peut être appelée par programmation avec des rappels de progression personnalisés.