Synchroniser et insérer des sous-titres dans une vidéo

Logo Gnome-Subtitles L’autre jour, je me suis trouvé confronté à un problème de sous-titres pour un film en VO ; le film était All the king’s men de Robert Rossen (1949). Un bon vieux film en noir et blanc, inspiré du roman que je viens de finir, Tous les hommes du Roi.

J’aime bien après avoir lu un livre, regarder le film qui en a été tiré, même si le roman dépasse toujours l’adaptation cinématographique… mais ce n’est pas le sujet de cet article ! ;-). Pour celui-ci, j’avais bien trouvé les sous-titres en français, mais ils n’étaient pas bien synchronisés avec le film.

D’habitude, ce genre de problème était réglé en calant le premier dialogue du film, en utilisant Gnome Subtitles. Mais cette fois, c’était manifestement insuffisant : les suivants se décalaient aussi dans le temps… J’ai donc découvert que Gnome Subtitles était bien plus puissant que je ne le croyais.

Je vais vous montrer comment procéder pour synchroniser correctement les sous-titres dans ce genre de situation. Je ne suis pas un spécialiste de ce logiciel, loin de là, je souhaite juste partager une expérience qui peut se révéler utile à d’autres. Et pour finir, j’insérerai les sous-titres dans la vidéo, histoire de n’avoir plus qu’un seul fichier à manipuler par la suite.

Tout cela sous Ubuntu/Linux bien sûr. Les logiciels utilisés seront Gnome Subtitles donc, et pour insérer les sous-titres, il faudra installer le paquet mkvtoolnix et taper la petite commande qui va bien.

Il faut donc commencer par installer Gnome Subtitles. Le plus simple est de passer par la logithèque :

Gnome Subtitles

Pour récupérer le sous-titre, un bon site est Opensubtiltes. On rentre le nom du film, et on trouve vite le sous-titre en français du film en question :

Il ne reste qu’à télécharger le fichier All_The_King’s_Men_fr.srt, et à l’ouvrir avec Gnome Subtitles :

Nous allons également ouvrir le fichier vidéo pour pouvoir vérifier la synchro des sous-titres et la corriger si besoin. Pour cela, cliquer sur le menu “Vidéo -> Ouvrir”, et aller chercher votre fichier ; la fenêtre se divise horizontalement pour afficher la vidéo :

Maintenant, double cliquer sur le premier sous-titre : la vidéo se déplace à l’endroit prévu, à savoir à 1’22.423 du début du film :

En appuyant sur le bouton “Play” de la vidéo, on s’aperçoit que la vidéo est en avance de quelques secondes : le type de droite s’apprête à dire “The boss wants to see you” soit “Le patron veut te voir” ! À peu près 3 secondes de retard pour les sous-titres…

À ce stade, on pourrait juste caler le premier sous-titre au bon endroit de la vidéo, et demander à Gnome Subtitles de décaler tous les autres sous-titres de la même manière. Ce ne sera pas suffisant dans notre cas, comme expliqué plus haut. Voilà tout de même la façon de procéder si cela suffisait :

Dans ce cas, il faut revenir un peu en arrière avec la vidéo, appuyer sur “Play” et dès que l’on entend “Burden !”, appuyer sur le bouton “Pause”. Cliquer ensuite sur le menu “Synchronisations -> Décaler” : le fenêtre qui s’ouvre affiche déjà le temps exact de décalage nécessaire (soit -2.828 secondes) dans notre cas. Ne pas oublier alors de sélectionner l’option “De la sélection jusqu’au dernier sous-titre”. Cliquer ensuite sur “Décaler”, et tout le fichier de sous-titre sera décalé de la même durée.

Mais dans notre cas, il va falloir utiliser le menu “Synchronisations -> Synchroniser”, et cliquer sur Ajouter. On retrouve notre premier point de synchronisation tel que nous l’avons calé précédemment :

Il va falloir procéder ainsi plusieurs fois afin de permettre à Gnome Subtitles de synchroniser correctement les sous-titres. Il en faut au moins deux (début et fin de la vidéo), j’ai préféré en ajouter deux autres (disons au premier tiers et au second tiers de la vidéo) pour être sûr.

Cliquer sur “Fermer” de la boite “Réglages des synchronisations”, et se déplacer au premier tiers de la vidéo. Toujours procéder de la même manière : double cliquer sur un sous-titre, et laisser la vidéo se positionner. Choisir un sous-titre que l’on sera en mesure de comprendre si votre anglais n’est pas “fluent” ! 😉 Ensuite, puisque l’on sait que la vidéo est en avance sur les sous-titres, reculer un peu la vidéo, laisser défiler et appuyer sur “Pause” au bon moment.

Ci-dessous, je suis allé à 30 minutes du film à peu près, cliqué sur “Willie Stark”, reculé la vidéo de deux bonnes minutes, et appuyé sur pause au bon moment, et enfin ajouté ce nouveau point de synchronisation : vous voyez qu’il y a environ 80 secondes de décalage maintenant !! On voit également dans le message d’État qu’il faut absolument un point de synchronisation à la fin de la vidéo pour synchroniser tous les sous-titres du film :

On continue donc comme ça, ajoutant de nouveaux points au deux-tiers, puis à la fin du film. J’ai coché la case “Synchroniser tous les sous-titres”, mais je pense que ce n’était pas nécessaire : cela sert quand vous n’avez pas inclus le premier et le dernier sous-titre.. Il ne reste plus qu’à cliquer sur le bouton “Synchroniser” :

Il faut bien sûr enregistrer le fichier avant de sortir de l’application (Fichier -> Enregistrer). Notre All_The_King’s_Men_fr.srt est maintenant correctement synchronisé avec la vidéo, et utilisable tel quel : il suffit de le mettre dans le même répertoire que le fichier vidéo, et de le charger avec l’application de lecture vidéo.

Il reste toutefois une dernière chose à faire à l’aide d’un éditeur de texte comme Geany. D’abord corriger certaines erreurs apparues dans le fichier (ça peut arriver) : il y a des caractères “//” ou “/” à remplacer par les bons caractères :

C’est bien entendu propre à ce fichier et peu fréquent. Par contre, il est important de sauvegarder le fichier en ayant défini un encodage en UTF-8 pur que les sous-titres affichent correctement les caractères étendus comme “é,à,è” etc…

Voilà, il ne reste plus qu’à intégrer le sous-titre au fichier vidéo, ça me paraît plus simple comme ça. Il faut donc installer la boîte à outil de Matroska pour Linux :

sudo apt install mkvtoolnix

Puis taper la commande suivante : le fichier final sera AllTheKingsMen.mkv, le fichier AVI est le fichier vidéo d’origine et le fichier SRT notre fichier de sous-titre que j’ai renommé pour retirer les espaces :

mkvmerge -o AllTheKingsMen.mkv -S AllTheKingsMen.avi AllTheKingsMen.srt

À priori, cela fonctionne bien avec la majorité des formats. Il est possible que l’opération échoue si le fichier vidéo en entrée utilise un codec spécial (on trouve des formats assez étranges parfois, ou tout simplement des formats propriétaires posant des problèmes de droit).

Et voilà, le film est prêt à être visionner, avec des sous-titres parfaitement synchronisés :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *