12
votes

API Java pour SRT Sous-titres

Y a-t-il une API Java pour les sous-titres SRT?


0 commentaires

4 Réponses :


7
votes

L'analyse réelle SRT est effectuée à travers des expressions régulières, que Java est capable de manipuler.

La réégycle réelle est la suivante: xxx

groupe 2, 3, 4, et 5 est l'heure de début Le groupe 6, 7, 8 et 9 est le temps de finition Le groupe 11 est le texte de sous-titre


3 commentaires

Merci! Pouvez-vous expliquer ce qui est: "(x1: \\ d. *?) ??" pour?


Il y a aussi une erreur - "\\ n" au lieu de "\\\n". Et il est encore préférable de remplacer cela par "\\ r? \\ n" (pour fonctionner à la fois sur Windows et UNIX) comme expliqué ici


Où avez-vous vu le modèle "\\ n"? Maintenant, à propos du personnage \ r, je dirais que vous avez raison, mais pour une raison, je ne peux pas expliquer dès maintenant, même s'il y a des caractères \ r dans le fichier, ce modèle correspond et produit des résultats corrects!



6
votes

J'ai produit une logique Java avec laquelle pour analyser et lire différents formats de sous-titres, parmi lesquels est le populaire SRT: vous pouvez trouver le code licencié sous licence Open Source (gratuitement à utiliser quelque chose) dans mon référentiel Git: < / p>

https://github.com/jdaren/subtititleconverter

Vous avez probablement besoin de classes de base et de la classe SRTFormat, et vous pouvez lire des fichiers SRT à partir d'une entrée d'intrigue ou obtenir des fichiers à chaîne [] complètes une fois que vous avez fini de les modifier.

Si vous trouvez cela utile ou je peux vous aider avec n'importe quoi s'il vous plaît contactez-moi.

PS: (autres formats pris en charge, partiellement ou entièrement sont .ass .ssa .sa .stl .scc et .xml (de la TTAF-DFXP de W3C également connu sous le nom de TTML 1.0)

EDIT:

Vous pouvez trouver la logique au travail dans www.subtitleconverter.net


3 commentaires

Doit être amélioré. Classe vide (E.G. Région ) et Catching NullPointException s ne sent pas bien.


La région de @Akapelko est une fonctionnalité future (c'est pourquoi son vide) pour d'autres formats (pour définir les sous-titres quelque part sur l'écran), SRT n'offre aucune disposition de toute nature. NullpointerException pourrait survenir sur des cas étranges, jusqu'à présent, la plupart ont été corrigés pour rechercher d'abord NULL ou initialiser la variable avec la taille 0. Mais vous avez raison de faire face à une réfraction serait bien ... toujours pour SRT fonctionne très bien.


Yay très bonnes choses :))))))



6
votes

En réalité la regex modifiée de @Panayotis qui prend en charge le texte de sous-titres multilignes est comme ceci: xxx

remplacer ([^ \\ |] *?) avec n'importe quel caractère qui ont moins de probabilité de venir en tant que texte sous-titre. J'ai actuellement utilisé "|" règle de négation de caractère.


1 commentaires

Utilisez ((. | \\ n) *?) au lieu de ([^ \\ |] *?) Il n'y aura donc pas d'exceptions.



3
votes

Il existe une autre API de base (et open source) qui peut traiter avec SRT et Ass sous-titres ici

analyse SRT: xxx


0 commentaires