Ce tutoriel décrit une façon de convertir des sous-titres VobSub en sous-titres SRT.
VobSub est le format des sous-titres sur DVD. Chaque sous-titre est stocké sous forme d'image. Ils ne sont pas toujours bien lus par les lecteurs multimédia, lorsqu'il sont intégrés à des fichiers vidéo (mkv par exemple).
Les sous-titres SRT (appelés aussi SubRip) sont au format texte, facilement éditables, peuvent être intégrés à des fichiers vidéos et sont aisément lus par les lecteurs multimédias.
Quelques logiciels permettent de réaliser cette opération de façon intégrée, mais présentent quelques désavantages :
La méthode ci-dessous utilise différents logiciels, combinant interface graphique, ligne de commande et script Nautilus, mais reste simple malgré cela.
Les logiciels suivants doivent être installés :
Le script Nautilus suivant doit être installé :
#!/bin/bash IFS=' ' printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read -r arg do tesseract "$arg" "$arg" -l fra -psm 6 done
Sous XFCE / Xubuntu, vous pouvez créer le script ci-dessous, et configurer une action personnalisée dans Thunar avec la commande : /chemin/OCR_Tesseract.sh %F
#!/bin/bash for arg in $@ do tesseract "$arg" "$arg" -l fra -psm 6 done
Si vous n'arrivez pas à installer le script dans nautilus, vous pouvez placer et lancer ce script à l'intérieur du dossier où se trouvent les fichiers :
NPROC=$(nproc --all| awk '{ print $1 - 1 }') # Set number of processor for fichier in *.tif do ( echo "$fichier" tesseract "$fichier" "$fichier" -l fra -psm 6 &>/dev/null ) & if [[ $(jobs -r -p | wc -l) -gt $NPROC ]]; then wait -n fi done wait
Un sous-titrage VobSub est composé de 2 fichiers : .idx
+ .sub
.
Pour obtenir ces 2 fichiers, il existe plusieurs méthodes selon la source, par exemple :
Pour extraire les images des sous-titres au format TIFF, on utilise la commande suivante :
subp2tiff --sid=0 -n <nom du vobsub>
Paramètres :
--sid=
est l'ID du sous-titre. Cet ID peut être identifié selon la méthode décrite ici, ou par tâtonnement en extrayant successivement chaque ID et en visualisant les fichiers image pour vérifier que ça correspond à ce qu'on veut.<nom du vobsub>
est le nom du fichier de sous-titres, sans les extensions .idx
et .sub
.Cette commande doit être lancée dans le dossier où sont situés ces 2 fichiers.
Cela va générer toute une série de fichiers .tif
: chacune de ces images est un sous-titre.
Attention, cela peut faire beaucoup de fichiers : si votre vidéo a 1000 sous-titres, il y aura 1000 fichiers .tif
.
Un fichier .xml
est également généré, qui contient l'indexation des sous-titres au format XML.
Sélectionner tous les fichiers .tif
et lancer le script Nautilus "OCR_Tesseract".
Ou
Vous pouvez aussi lancer le script "Tesseract.sh" dans le dossier où se trouvent les fichiers.
Cela va générer un fichier .txt
pour chaque fichier .tif
, contenant le texte du sous-titre.
Lancer la commande suivante, dans le dossier où sont situés les fichiers :
subptools -s -w -t srt -i nom.xml -o nom.srt
Paramètres :
nom.xml
: le nom du fichier .xml
(voir étape 2)nom.srt
: le nom du fichier de sous-titres .srt
que l'on veut créer.
Un fichier de sous-titres .srt
est généré.
Ouvrir le fichier .srt
avec Gedit ou LibreOffice et utiliser le correcteur orthographique, ainsi que la fonction "Remplacer" pour corriger rapidement les anomalies dues à la reconnaissance de caractères.