PDFMove
Formats de sous-titres : les différences entre SRT, VTT et ASS
Guide

Formats de sous-titres : les différences entre SRT, VTT et ASS

9 min de lecture

Les fichiers de sous-titres sont de simples fichiers texte, mais les différences entre eux déterminent où et comment ils apparaîtront sur votre vidéo. Dans cet article, nous expliquons la structure des trois formats courants, l'origine du problème d'encodage des caractères et les causes techniques des décalages de synchronisation.

SRT : le plus répandu et le plus simple

Le format SubRip Text tire son nom d'un programme d'extraction de sous-titres de DVD, et sa structure est aussi simple que possible :

1
00:00:01,500 --> 00:00:04,200
Bonjour, voici la première ligne de sous-titre.

2
00:00:04,500 --> 00:00:07,800
Voici la deuxième ligne, et elle est
répartie sur deux lignes.

Chaque bloc se compose de quatre parties :

  1. Le numéro d'ordre (à partir de 1)
  2. L'intervalle de temps (début --> fin)
  3. Le texte (une ou plusieurs lignes)
  4. Une ligne vide (qui sépare les blocs)

Le format de temps est heures:minutes:secondes,millisecondes et le séparateur des millisecondes est une virgule. Ce détail est l'un des points clés qui le distinguent du VTT.

Les limites du SRT :

  • Aucune information de style. Police, taille, couleur, position — rien de tout cela n'est défini dans le fichier. Le lecteur ou l'outil d'incrustation les détermine de l'extérieur.
  • Aucun positionnement. Chaque sous-titre s'affiche au même endroit (généralement en bas au centre).
  • Mise en forme limitée. Certains lecteurs prennent en charge les balises HTML <i> (italique), <b> (gras) et <u> (souligné), mais ce n'est pas une fonctionnalité standard : tous les lecteurs ne les interprètent pas.

En revanche, il bénéficie d'une prise en charge universelle : presque tous les lecteurs, tous les téléviseurs, tous les éditeurs de sous-titres lisent le SRT. Comme il est simple, il peut être modifié à la main dans un éditeur de texte.

VTT : le SRT conçu pour le web

WebVTT (Web Video Text Tracks) a été développé pour la vidéo HTML5. Il ressemble beaucoup au SRT, mais s'en écarte sur trois points :

WEBVTT

1
00:00:01.500 --> 00:00:04.200
Bonjour, voici la première ligne de sous-titre.

2
00:00:04.500 --> 00:00:07.800 position:50% line:80%
Cette ligne est positionnée de façon particulière.

Différence 1 : l'en-tête WEBVTT. Le fichier doit obligatoirement commencer par cette ligne.

Différence 2 : le séparateur point. Dans les horodatages, le séparateur des millisecondes n'est pas une virgule mais un point. La façon la plus simple de convertir un fichier SRT en VTT consiste à ajouter la ligne WEBVTT en tête et à remplacer les virgules par des points.

Différence 3 : positionnement et indices de style. Des valeurs telles que position, line, align ou size peuvent être ajoutées à la fin de la ligne de temps. La mise en forme via CSS est également possible.

L'intérêt majeur du VTT : la balise HTML5 <video> n'accepte que le VTT.

<video controls>
  <source src="video.mp4" type="video/mp4">
  <track src="sous-titres-fr.vtt" kind="subtitles" srclang="fr" label="Français" default>
  <track src="sous-titres-en.vtt" kind="subtitles" srclang="en" label="English">
</video>

Cette structure présente un avantage important : le texte des sous-titres peut être lu par les moteurs de recherche. Un sous-titre incrusté fait partie de l'image et les machines ne peuvent pas le lire ; un fichier VTT distinct, lui, est accessible en tant que texte.

L'attribut kind distingue différents types de pistes : subtitles (traduction), captions (pour les personnes sourdes ou malentendantes, incluant aussi les effets sonores), descriptions (audiodescription pour les personnes aveugles), chapters (marqueurs de chapitres).

ASS/SSA : la puissance du style

Advanced SubStation Alpha est un format beaucoup plus complexe, qui embarque lui-même les informations de style :

[Script Info]
ScriptType: v4.00+
PlayResX: 1920
PlayResY: 1080

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, OutlineColour, ...
Style: Defaut,Arial,48,&H00FFFFFF,&H00000000,...
Style: Panneau,Arial,36,&H0000FFFF,&H00000000,...

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Text
Dialogue: 0,0:00:01.50,0:00:04.20,Defaut,,0,0,0,,Bonjour.
Dialogue: 0,0:00:05.00,0:00:07.00,Panneau,,0,0,0,,{\pos(800,200)}FERMÉ

Les capacités offertes par l'ASS :

  • Styles nommés. Des styles distincts sont définis pour différents locuteurs, différents types de texte.
  • Positionnement libre. Avec \pos(x,y), le sous-titre peut être placé à n'importe quel endroit de l'écran.
  • Contrôle de la couleur et du contour. Chaque style porte sa propre palette.
  • Animation. Défilement, fondu, rotation, mise à l'échelle.
  • Effet karaoké. Mise en valeur successive des syllabes dans les paroles de chanson.
  • Calques. Sous-titres superposés.

Quand est-ce nécessaire ? Lorsque la position, la couleur ou le mouvement du sous-titre doivent varier selon le contenu : placer la traduction d'un panneau visible à l'écran à côté de ce panneau, distinguer les locuteurs par des couleurs, mettre en valeur des paroles de chanson.

Le prix à payer : sa prise en charge n'est pas aussi large que celle du SRT. Certains lecteurs ignorent les styles et affichent du texte brut ; d'autres n'ouvrent pas le fichier du tout.

L'encodage des caractères : le cauchemar des accents

C'est le problème le plus fréquemment rencontré avec les sous-titres, et sa source tient à la nature même des formats.

Les fichiers de sous-titres sont du texte brut, et un fichier texte n'indique pas de lui-même dans quel encodage il a été enregistré. Un programme doit faire une hypothèse en l'ouvrant.

Historiquement, les textes accentués étaient stockés dans les encodages suivants :

| Encodage | Époque | Statut | |---|---|---| | ISO-8859-1 (Latin-1) | Années 1990-2000 | Ancien | | Windows-1252 / Windows-1254 | Systèmes Windows | Ancien | | UTF-8 | Depuis les années 2000 | Standard moderne |

Lorsque vous lisez un fichier Windows-1252 en supposant qu'il est en UTF-8, les lettres accentuées se corrompent :

| Correct | Affichage corrompu | |---|---| | é | é | | è | è | | à | à | | ç | ç | | ù | ù | | œ | Å" |

Solution : ouvrez le fichier dans un éditeur de texte et enregistrez-le à nouveau en UTF-8. Dans le Bloc-notes, l'option d'encodage se trouve en bas de la fenêtre « Enregistrer sous » ; dans VS Code, l'encodage courant est affiché en bas à droite et peut être modifié d'un clic.

La question du BOM : les fichiers UTF-8 peuvent facultativement porter en tête une « marque d'ordre des octets » (BOM). Certains outils lisent mal la première ligne des fichiers avec BOM. Si vous rencontrez un problème, essayez l'UTF-8 sans BOM.

Fréquence d'images et décalage de synchronisation

La synchronisation des sous-titres se dégrade de deux façons différentes, et chacune a sa propre solution.

Décalage constant

Le sous-titre arrive systématiquement en avance ou en retard de la même durée.

Cause : votre vidéo comporte au début un segment absent du fichier de sous-titres (logo du distributeur, écran d'avertissement), ou l'inverse.

Solution : ajoutez ou retirez la même valeur à tous les horodatages. Les éditeurs de sous-titres font cela en une seule opération.

Décalage croissant

La synchronisation est bonne au début et se dégrade vers la fin.

Cause : incompatibilité de fréquence d'images. Le même contenu existe en plusieurs fréquences d'images :

| Standard | Fréquence d'images | Usage | |---|---|---| | Cinéma | 24 ips | Tournage de film | | PAL | 25 ips | Télévision européenne | | NTSC | 23,976 ips | Amérique, distribution numérique | | NTSC vidéo | 29,97 ips | Télévision américaine |

Un sous-titre préparé pour du 25 ips, lu sur une vidéo à 23,976 ips, accumule environ 4 % d'erreur par seconde. Sur un film de deux heures, cela représente un décalage dépassant cinq minutes vers la fin.

Solution : correction proportionnelle. Tous les horodatages sont multipliés par le rapport (ips cible / ips source). Les éditeurs de sous-titres proposent une option de « conversion de fréquence d'images ».

Certains anciens formats (comme MicroDVD) stockent le temps directement en numéros d'image, et non en secondes. Dans ces formats, il est impossible de calculer le temps sans connaître la fréquence d'images.

Intégration et incrustation : ce qui change dans le fichier

Intégration (soft subtitle) : le sous-titre est ajouté au conteneur vidéo comme une piste distincte. Le MKV le prend parfaitement en charge ; en MP4, la prise en charge est plus limitée (généralement à certains formats seulement). Les données vidéo ne sont pas touchées, la copie est donc possible et la qualité préservée.

Incrustation (hardsub) : le sous-titre est dessiné sur chaque image de la vidéo et devient des pixels. Cela nécessite un réencodage de la vidéo — il y a donc une certaine perte de qualité.

Lors de l'incrustation, le texte du sous-titre est définitivement perdu ; seule l'image subsiste. C'est pourquoi :

  • L'opération est irréversible.
  • Les moteurs de recherche ne peuvent pas le lire.
  • Les lecteurs d'écran n'y accèdent pas.
  • Il ne peut pas être désactivé.

En revanche, aucun problème de compatibilité ne se pose : le sous-titre fait désormais partie de l'image.

En résumé

Le SRT est le format le plus simple et le plus largement pris en charge, mais il ne transporte ni style ni position ; le VTT a été conçu pour le web, c'est le seul format accepté par la balise vidéo HTML5 et le fait qu'il soit lisible par les moteurs de recherche constitue un avantage supplémentaire ; l'ASS offre quant à lui une réelle puissance de style, de position et d'animation, mais sa prise en charge est plus étroite. Le problème le plus fréquent avec les sous-titres accentués est l'encodage des caractères, et la solution consiste à réenregistrer le fichier en UTF-8. Concernant les décalages de synchronisation, un décalage constant se corrige par un simple décalage temporel, tandis qu'un décalage croissant se corrige par une correction proportionnelle à la fréquence d'images. Enfin, le choix entre intégration et incrustation est une décision sans retour : l'incrustation fonctionne partout, mais le texte du sous-titre est définitivement perdu.

Questions fréquentes

SRT et VTT se ressemblent énormément : quelle est la vraie différence ?

Structurellement ils sont très proches, mais trois points les séparent : un fichier VTT commence par la ligne WEBVTT, il utilise un point au lieu d'une virgule dans les horodatages (00:00:01.500), et il prend en charge le positionnement, l'alignement et les indices de style. Le plus important : la balise vidéo HTML5 n'accepte que le VTT — vous ne pouvez pas utiliser directement un fichier SRT dans une page web.

Pourquoi l'encodage des caractères pose-t-il autant de problèmes ?

Parce que les fichiers de sous-titres sont du texte brut et qu'un fichier texte n'indique pas de lui-même dans quel encodage il a été enregistré. Un programme doit faire une hypothèse en l'ouvrant. Les sous-titres en langues d'Europe de l'Est ou en turc étaient autrefois enregistrés en Windows-1254 ; lorsqu'un outil moderne qui suppose de l'UTF-8 lit ce fichier, les lettres accentuées se transforment en caractères incohérents.

Pourquoi la fréquence d'images affecte-t-elle la synchronisation des sous-titres ?

Certains anciens formats de sous-titres stockent le temps en numéros d'image plutôt qu'en secondes. De plus, un même film peut exister en plusieurs fréquences d'images — 24 ips au cinéma, 25 ips pour la télévision PAL, 23,976 ips en NTSC. Si un sous-titre préparé pour du 25 ips est lu sur une vidéo à 23,976 ips, une petite erreur s'accumule à chaque seconde et le décalage peut atteindre plusieurs minutes au bout de deux heures.

Quand le format ASS devient-il nécessaire ?

Lorsque la position, la couleur, la police ou le mouvement du sous-titre doivent varier selon le contenu. Par exemple placer la traduction d'un panneau visible à l'écran juste à côté de ce panneau, distinguer différents locuteurs par des couleurs, ou mettre en valeur des paroles de chanson à la manière d'un karaoké. Le SRT ne sait rien faire de tout cela : chaque ligne s'affiche avec le même style, au même endroit.

Essayez dès maintenant avec Videoya Altyazı Ekle.

Essayer Videoya Altyazı Ekle