| table des matières --> suivant <-- précédent | dernière modification le 22 novembre 2002 |
Pour cela, vous devez avoir transcode et ses sources. Vous avez besoin de
tccat et tcextract de transcode et des fichiers situés dans
Tout d'abord, voyons quels sous-titres sont disponibles. On peut utiliser mplayer pour cela :
Maintenant que nous avons le sid (subtitle ID) correspondant à la langue voulue, on peut utiliser les outils de transcode pour extraire le flux des sous-titres:
La dernière étape est d'utiliser srttool pour inclure le texte dans le fichier
Voilà, vous avez un sous-titre qui marche. Vous pouvez les utiliser avec, par exemple,
transcode/contrib/subrip (contenu dans les sources de transcode).
5.1.1. Compiler les utilitaires
Malheureusement, aucun paquetage (RPM, deb) n'inclue
subrip à ma connaissance, donc vous aurez à le compiler et l'installer vous-même. Mais c'est plutôt facile.
cd
transcode/contrib/subrip) et tapez make.srttool, subtitle2pgm
et pgm2txt dans un répertoire contenu dans votre PATH.pgm2txt si votre version de gocr ne supporte pas l'option -p: à la fin, il y a deux lignes contenant -p ${DBPATH}. Retirez-les simplement (après avoir consulté la page de manuel de gocr).5.1.2. Extraire les sous-titres
Ici, je suppose que vous avez copié votre DVD avec vobcopy -m, ce qui signifie que vous en avez une copie miroir incluant les fichiers .IFO. Si ce n'est pas le cas, vous devrez adapter les sources.mplayer -dvd-device /space/st-tng/disc1/ -dvd 1
-vo null -ao null -frames 0 -v 2>&1 | grep sid
ce qui demande à
mplayer de donner plein d'informations à propos des sources et de ne rien jouer. Ca devrait donner la liste des sous-titres:
[open] subtitle ( sid ): 0 language: da
[open] subtitle ( sid ): 1 language: de
[open] subtitle ( sid ): 2 language: en
[open] subtitle ( sid ): 3 language: es
[open] subtitle ( sid ): 4 language: fr
[open] subtitle ( sid ): 5 language: it
[open] subtitle ( sid ): 6 language: nl
[open] subtitle ( sid ): 7 language: no
[open] subtitle ( sid ): 8 language: sv
[open] subtitle ( sid ): 9 language: entccat -i /space/st-tng/dic1/ -T 1 -L | tcextract -x ps1 -t vob
-a 0x22 > subs-en
Le -a 0x21 est le numéro du sous-titre en hexadécimal: 0x20 + sid. Ici, on veut les sous-titres en anglais.
5.1.2. Convertir le flux
Ok, on a le flux non traité, mais que pouvons-nous en faire ? Tout d'abord, nous devons convertir chaque entrée de sous-titre en image. Ceci peut être réalisé facilement avec subtitle2pgm -o english -c 255,255,0,255 < subs-en
Il y a cependant un truc. Avec -c vous pouvez spécifiez les niveaux de gris utilisés dans la conversion. L'idée est de faciliter le travail de gocr autant que faire ce peut. Vous aurez donc peut-être à jouer avec les paramètres - mais c'est également facile. J'ai pris les exemples suivants de mon DVD de Star Trek -
The Next Generation :
Comme vous pouvez le voir, vous avez besoin d'une image qui ne contienne pas de caractères contourés.-c 0,255,255,255 - C'est de toute évidence mauvais.-c 255,0,255,255 - Ca semble bon.-c 255,255,0,255 - On ne veut pas de celui-ci.-c 255,255,255,0 - On ne veut pas de celui-là non plus.subtitle2pgm crée plein d'images - une pour chaque sous-titre -
et un fichier de contrôle, nommé english.srtx dans mon cas, qui contient la durée de chaque sous-titre. La prochaine étape est de laisser gocr reconnaître
le texte:
pgm2txt english
Attention - gocr vous demandera souvent de lui apprendre les caractères qu'il n'aura pas reconnus. C'est normal. Une fois le travail fini, vous pouvez utiliser ispell
sur les fichiers texte créés:
ispell -d american english*txt
Adaptez à la langue voulue, évidemment..srtx :
srttool -s -w < english.srtx > english.srt
mplayer -sub english.srt mymovie.avi
| table des matières --> suivant <-- précédent | Ce guide a été écrit par Moritz Bunkus et traduit par Massis Sirapian |