Vidéo FCPX et autres

Sous-titrer un film en direct

Sous titrer un film en direct, cela ne veut pas dire : frapper la traduction au fur et à mesure du déroulement du film, ou réaliser une traduction simultanée orale du film au micro. C’est un besoin de certains festivals en particulier, de sous-titrer un film sans réaliser une copie, ou inclure un sous titrage dans un DCP. Les sous-titres sont projetés durant la séance à l’aide par exemple d’un vidéo-projecteur (autre que celui qui diffuse le film pour être bien clair), en-dessous du film original. (ce qui permet un double sous-titrage éventuellement, une VO st anglais + sous-titrage français).

Les outils donnés ici sont issus de mon expérience personnelle, il y a probablement d’autres façons de faire, mais ils ont donnés de bons résultats avec films sur bobines ou en projection numérique (dvd blu-ray ou DCP).

Deux cas de figures pour réaliser ces sous-titres, on a ou pas le fichier des dialogues de la VO (ou ceux des sous-titres dans une autre langue) avec les timecode.

Dispositif

JPEG - 38.1 ko
Dispositif de sous-titrage
Cliquer pour agrandir

Un petit schéma pour illustrer le dispositif. Dans tous les cas la difficulté réside dans la synchronisation (manuelle ou automatique) entre le déroulement du film et les sous-titres.

Quelques règles de sous-titrage

  1. Un sous-titre doit être lisible, écrit dans une couleur claire.
  2. Un sous-titre ne doit pas avoir plus de deux lignes.
  3. Le sous-titre de film doit être centré.
  4. Une ligne ne doit pas excéder une quarantaine de caractères.
  5. Une lecture "normale" est d’environ 12 caractères par seconde.
  6. Les dialogues sont indiqués par des tirets en début de ligne et alignés à gauche.
  7. N’oublions pas enfin les règles de base de la typographie. Les capitales sont accentuées (Écoutez…,), les espaces doivent être respectés pour les ponctuations en cohérence avec l’ensemble du film.
  8. Éviter de traduire l’appel d’un prénom, ou de répéter la traduction d’une même expression répétée elle-même par le personnage (en gros ne pas faire ce qu’on ne voudrait pas voir).

Sans timecode

Dans ce cas on dispose d’un fichier texte (peu importe le format) contenant une traduction des dialogues réalisée par un traducteur (qui n’est pas forcément le sous-titreur) à partir des dialogues originaux (ou du sous-titrage anglais dans certains cas quand celui-ci a déjà été réalisé). Il va s’agir de transformer ce texte en présentation (type powerpoint pour ne pas le nommer). Cette transformation peut se faire avec tout type de logiciel de présentation (LibreOffice en particulier pourquoi pas).

JPEG - 31 ko
Retour Chariot - Sauts de ligne

L’intérêt est de transférer les sous-titres du fichier texte vers le document de présentation sans avoir à ressaisir, ni à copier-coller (ce qui serait fastidieux). Un préalable est que les sous-titres qui sont écrits sur deux lignes restent solidaires. Il faut pour cela que le retour à la ligne ne soit pas un retour simple (obtenu par une pression sur la touche RC (voir image), qui produit un saut de paragraphe), mais un saut de ligne solidaire (à l’intérieur du même paragraphe) obtenu généralement par Shift-RC (Majuscule temporaire-RC).
Voir https://fr.wikipedia.org/wiki/Retou...

JPEG - 70.6 ko
Mode plan
JPEG - 35.3 ko
Modifier le style de titre

Réaliser une diapo type avec fond noir et zone de texte en haut (ou télécharger le fichier .opt joint à cet article). Copier les dialogues depuis le fichier texte et en passant en mode plan dans le logiciel de présentation coller les dialogues. Ceci génère automatiquement autant de diapo que de paragraphes. On peut ensuite ajuster l’aspect des textes en jouant sur le style de titre.

La démarche est sensiblement la même avec Keynote (passer en mode structure pour copier coller les dialogues). Avec PowerPoint, il est possible d’ouvrir un fichier au format rtf pour générer directement le diaporama. Appliquer ensuite les styles de diapo et de texte désirés.

Une fois cette opération réalisée, il reste à vérifier avec le dvd du film, le rythme des diapos et des dialogues et à insérer des diapo noires en fin d’échanges ou en absence de dialogue. Cette phase peut être assez longue et nécessiter plusieurs passages avant de trouver une solution satisfaisante. Lorsque les répliques sont rapides, il n’est pas nécessaire d’utiliser une diapo noire entre deux répliques, le compromis est plus délicat en cas d’échanges pas trop rapides.

À la projection on pourra utiliser les outils du présentateur (ou pas), l’écran principal de présentation sur le vidéoprojecteur, et l’écran de l’ordinateur présentant alors les diapos suivantes. On enchaine les diapos manuellement avec les touches fléchées.

Avantages - mise en œuvre facile
Inconvénients - grande attention pendant la projection, temps important de préparation et d’ajustement.

Avec timecode

il est important que le traducteur conserve dans son fichier les indications de timecode. Tous les fichiers de sous-titres sont éditables avec un éditeur de texte.

L’opération consiste à réaliser une vidéo des sous-titres qui sera projetée en même temps que le film. La solution exposée ici consiste à réaliser un film au format .mov (Quicktime).
Outils nécessaires :

  • Quicktime 7 Pro (avec possibilités d’éditions et d’enregistrement), licence payante https://www.apple.com/fr/quicktime/...
  • Un éditeur de texte capable de fournir éventuellement une recherche remplacement par expression régulières (maitrise souhaitée).
  • Un environnement susceptible de permettre l’exécution en local de script pHp (MAMP sous Mac OS X ou WampServeur sous Windows)
  • Un logiciel de dessin pour générer une image noire de format donné (facultatif).
  • Pas testé mais qui peut rendre services un logiciel comme SubsFactory dispo sur AppStore ou Jubler (éditeur de sous-titres libre et multi-plateformes).

Fichier QuickTime

Un fichier QuickTime texte se présente généralement comme suit :

{QTtext}
{width:1280}
{height:960}
{font:Geneva}
{size:32}
{textColor:65000,65000,0}
{timeStamps:absolute}
{timeScale:24}
{keyedtext:on}
{justify:center}
[00:02:06.01]

[00:02:12.07]
[00:02:22.03]
Quoi de neuf ?
[00:02:23.10]
[00:02:25.06]
Tu devais m'apprendre à boxer.
[00:02:27.05]
[00:02:27.07]
Ah bon ?
- Oui.
[00:02:28.12]
PDF - 33.9 ko
Balises QuickTime

# QTtext : cette balise est absolument nécessaire, c’est par elle que doit obligatoirement commencer le fichier
# width:1280 height:760 : la largeur et la hauteur de la fenêtre
# font:Geneva : une balise pour la police, vous pouvez ici changer son nom
# size:32 : la taille des caractères
# textColor:65000, 65000, 0 : la couleur du texte, chaque composante Rouge ,Vert, Bleu peut prendre les valeurs comprises entre 0 et 65535
# justify:center : la justification du texte qui peut être aussi :justify:left, justify:right
# keyedtext:on : chaque dialogue est un chapitre (ce qui permet de rattraper avec les touches fléchées un sous-titre décalé)
# timeScale:24 : 24 images par secondes
# timeStamps:absolute : indique que les repères de temps sont établis par rapport au début de la séquence, si l’on met timeStamps:relative, les valeurs sont établies par rapport au repère précédent

Les timecodes QuickTime ont pour format [hh:mm:ss.ii] heures:minutes:secondes:images (avec 0 initial). Noter les crochets et le point (.) comme séparateur du nombre d’images. La séquence

[00:02:22.03]
Quoi de neuf ?
[00:02:23.10]

Indique que le sous-titre est affiché 2 min 22 s et 3 images après le début du film et disparait au temps 2 min 23 s et 10 images. Il a donc été affiché 1s et 7 images.

Traduire des timecode en format QuickTime text avec Jubler

Si le format initial de timecode est reconnu par Jubler, on pourra utiliser ce dernier pour traduire le fichier en format QuickTime text. Jubler reconnait les formats les plus courants et notamment .ass (substation) .srt, .ssa, .sub, .stl et qk text et converti d’un format vers l’autre.

On peut l’utiliser pour écrire aussi les sous-titres à partir de zéro. Dans ce cas il est utile (sinon indispensable) de visualiser la vidéo simultanément et donc d’installer MPlayer OX Extended.

Une fois le fichier au format qk Text obtenu passer à la partie préparation, en rajoutant avant quelques éléments d’entête du fichier Quicktime (en particulier les dimensions et l’indication keyedtext - comparer avec le fichier type donné plus haut).

Transformation en format .srt ou pivot

Si Jubler ne peut convenir, dans un premier temps il faut donc repérer le format de sous-titre original. Puis avec quelques scripts et éventuellement quelques expressions régulières, on va transformer le fichier d’origine en fichier pivot ou en srt.

Les fichiers au format .srt sont de la forme

2
00:02:16,050 --> 00:02:17,682
Quoi de neuf ?

3
00:02:19,474 --> 00:02:21,406
Tu devais m'apprendre à boxer.

Il est important de connaitre le nombre d’images par seconde, le codage des temps faisant intervenir les millièmes de seconde. Un script php (srt-qt.php, voir dans le pack) permet de passer du format .srt au format text QuickTime.

Une application comme Belle Nuit Subtitler (une version plus supportée existe pour Windows) permet de traduire de nombreux formats de fichiers vers un format pivot. Une moulinette php permettra ensuite de passer de ce format pivot au format QuickTime (pivot-qt.php)

Remarque Belle Nuit Subtitler est devenu libre et open source depuis la première version de cet article, il doit donc être maintenant possible d’obtenir des fichiers de sous-titres au format QuickTime directement sans passer par la moulinette php.

Le format pivot de Belle Nuit Subtitler se présente sous la forme

/file 0002
/tc 00:02:16:01 00:02:17:17
Quoi de neuf ?

/file 0003
/tc 00:02:19:11 00:02:21:10
Tu devais m'apprendre à boxer.
JPEG - 71.5 ko
BelleNuit Subtitler fenêtre d’import

Il n’est pas nécessaire d’acquérir une licence de Belle Nuit pour obtenir ce format.

  1. Installer et ouvrir Belle Nuit.
  2. Dans le menu "Fichier > Importer" désigner le fichier de sous-titres traduits, son format, sa cadence (on pourra faire plusieurs tests pour voir quel paramétrage convient le mieux).
  3. BelleNuit ne permet pas de convertir les données pivot obtenues sans licence. Il suffit soit de les sélectionner dans la fenêtre de prévisualisation, soit de générer le document et de faire de même (Tout sélectionner : Cmd-A).
  4. Coller le texte dans un document texte vierge et enregistrer au format texte seul .txt en précisant les paramètres suivants :
    Fin de ligne CR-LF
    encodage Macos-Roman
    On peut aussi enregistrer le document pivot au format BelleNuit, ouvrir celui-ci avec un éditeur de texte et supprimer les données xml pour ne conserver que les sous-titres strictement.

Transformation en format QuickTime text

Zip - 9.3 ko
Pack scripts pHp conversion QTime
Scripts php et fichier image noire au format tif

On a donc à cette étape soit un fichier srt, soit un fichier pivot.
On utilise alors le script php adéquat (voir dans le pack srt-qt.php ou pivot-qt.php) pour transformer les sous-titres en QuickTime.

  1. Activer MAMP ou WampServer (se référer à la doc de ces logiciels éventuellement)
  2. À l’aide de son navigateur exécuter le script choisi.
  3. Désigner le fichier et indiquer le nombre d’images par seconde
  4. Le résultat de la conversion s’affiche dans le navigateur. Copier celui-ci et le coller dans un document texte.
  5. Enregistrer celui-ci (mêmes spécifications que précédemment).

on obtient alors quelque chose du genre (les entêtes ne sont pas reproduites ici) :

[00:02:16.01]
Quoi de neuf ?
[00:02:17:17]
[00:02:19:11]
Tu devais m'apprendre à boxer.
[00:02:21:10]

Préparation du fichier QuickTime text

Avant de passer à la génération du fichier vidéo .mov, une dernière opération. Celle-ci est destinée à assurer les opérations de lancement manuel de la vidéo de sous-titres.
On estime le temps de réaction pour le lancement (appui sur la barre d’espace) à 3/10ème de secondes soit pour 25 images par secondes 7 à 8 images.
On va avancer en conséquence le premier timecode de 7 à 8 images pour tenir compte de ce facteur. Il va devenir [00:02:16.08].
Puis pour caler la vidéo en attente de démarrage on va introduire un sous-titre fictif une image avant et de durée 1 image. (Ici ... mais c’est à la convenance de chacun). On aura à la fin :

[00:02:16.06]

[00:02:16.07]
[00:02:16.08]
Quoi de neuf ?
[00:02:17:17]
[00:02:19:11]
Tu devais m'apprendre à boxer.
[00:02:21:10]

La vidéo est constituée de telle façon que l’on puisse passer d’un timecode à un autre avec les flèches de direction (droite-gauche) (keyedtext:on). On viendra se caler en début sur les … puis on appuiera une fois sur la flèche droite. On sera ainsi calé sur le timecode de fin du sous-titre fictif. Au lancement on n’aura qu’à appuyer sur la barre d’espace pour lancer la vidéo des sous-titres.

On s’assurera qu’un timecode de fin de sous-titre est présent en fin de fichier. On pourra introduire à la suite son label éventuel de paternité au moment adéquat (possibilité de le déclencher manuellement avec les touches fléchées si on a stoppé la vidéo des sous-titres).

Obtenir la vidéo QuickTime

Dernière étape (ou presque).

  1. Lancer QuickTime Pro (QuickTime Player 7 avec licence Pro) et ouvrir le fichier texte. On ne voit rien et c’est normal le fond blanc par défaut étant "au-dessus" de la couche texte. (Voir plus bas en cas de message d’erreur à l’ouverture)
  2. On va d’abord ajouter un fond noir. Pour cela générer un fichier noir au format tiff de 1280 x 720 pixels avec n’importe quel logiciel photo ou autre (ou utilisez le fichier noir.tif fourni dans le pack). Ouvrir ce fichier avec QuickTime Pro.
    Ce document doit avoir les mêmes dimensions que celles indiquées dans les entêtes QuickTime width et height.
  3. Copier ce document (l’image noire) puis en activant la fenêtre du document de sous-titrage choisir "Édition > Ajouter à la sélection et mettre à l’échelle".
  4. JPEG - 88.4 ko
    Fenêtre des propriétés de la séquence

    Il faut à présent réarranger les couches texte et fond. Pour cela afficher les propriétés de la séquence (Menu "Fenêtre > Propriétés de la séquence" ou Cmd-J). puis choisir l’onglet "Réglages visuels". Sélectionner la piste texte, sa couche par défaut est 0, celle de la piste vidéo est -1. Modifier la valeur de la couche de la piste texte et lui donner la valeur -2.

  5. On doit alors voir le texte des sous-titres en faisant défiler la vidéo et on peut passer d’un sous-titre à un autre avec les touches fléchées droite et gauche.
  6. Enregistrer sous au format .mov comme séquence autonome.
  7. C’est fini. Ou presque, voir plus bas sur la question dvd / film / dcp.

En cas d’erreur QuickTime

QuickTime génère une erreur si le fichier est mal formé, c’est à dire si un sous-titre démarre avant que le précédent ne soit fini (il arrive d’avoir des fichiers ainsi mal formé, le format srt semblant plus permissif à ce niveau). QuickTime ne donne cependant aucune indication permettant de localiser l’erreur. Le script php verif-qt.php opère la détection des erreurs de type timecode incorrect et indique où elle se situe. (faire une recherche du terme "erreur" avec son navigateur).
On peut alors corriger le fichier texte et reprendre l’opération. les timecode doivent être dans un ordre strictement croissant (le timecode de fin et celui du début du suivant ne peuvent être égaux, le premier doit être strictemet inférieur au second).

Cadence 24 ou 25 images/seconde

Les dvd sont générés à 25 im/s, les films (au moins sur pellicule sont générés à 24 im/s). En général on ne dispose que du dvd pour faire les tests et du film que dans les derniers moments (et encore faut-il pouvoir disposer d’une salle quelques temps). Il faut donc générer deux fichiers et générer l’un à partir de l’autre.
Le fichier initial est généralement celui des sous-titres du dvd (donc en 25 im/s). Le passage en 24 im/s se fait à nombre d’images constant (le nombre d’images est le même dans le film en salle et dans le dvd), le dvd est donc plus court que le film, ou le film plus long que le dvd (surprenant mais ça fonctionne).
Un script pHp qt-convert.php réalise cette conversion des timecode et traite un fichier .txt pour passer d’une cadence à l’autre en modifiant les timecode sur la base du nombre d’images identique entre l’un et l’autre.
On pourra donc ainsi générer deux fichiers vidéo de sous-titre.

Note

Avec les films sur bobine, cette méthode fonctionne correctement mais la correspondance des sous-titres avec le film doit être réajustée périodiquement pendant la projection. Ceci est dû au fait que la vitesse des projecteurs à bobine n’est pas exactement 24 im/s, que les bandes amorce et autres coupures enlèvent des images. Le réajustement se fait simplement par un appui sur la touche de flèche droite puis la barre d’espace pour relancer la vidéo. Suivant les copies et le projecteur, la synchro peut parfois se maintenir pendant 10 minutes. Nous ne parlerons pas des films où des séquences entières ont été rajoutées ou enlevées entre la version dvd et la version salle !

Avec les films numériques projetés en DCP, le résultat est impressionnant quand on a expérimenté avant des films sur bobine. La synchro reste parfaite du début à la fin, aucun recadrage n’est nécessaire, à la deuxième ou troisième projection on conserve encore des craintes de désynchronisation et on n’ose à peine quitter son poste pendant la séance.

Rappel

Les éléments donnés ici ont été utilisés pendant plusieurs années avec succès. Certains ont probablement élaboré d’autres méthodes tout aussi valables (peut-être plus simple à mettre en œuvre), celles données ici sont indiquées en tant que ressources possibles.