SRT

Qu’est-ce qu’un fichier SRT ?

Le format de sous-titres le mieux pris en charge. Des blocs numérotés, des repères de temps, du texte nu.

Ce qu’est SRT

SRT est un format texte que n’importe quel éditeur ouvre. Il est utilisé pour le sous-titrage.

L’extension est .srt et le nom complet SubRip Subtitle. L’un et l’autre comptent moins que ce que le fichier peut contenir, et c’est le sujet du reste de cette page.

D’où vient SRT

Il remonte à 2000.

L’âge est utile à connaître pour une raison pratique : plus un format est ancien, plus les programmes ont eu le temps de l’apprendre.

La spécification est publique

Elle est publiée intégralement : n’importe qui peut l’implémenter à partir du document plutôt qu’en l’observant, et c’est pourquoi ce format apparaît dans tant de programmes et pourquoi des fichiers écrits il y a vingt ans s’ouvrent encore. Une spécification publiée n’est pas pour autant libre de redevances : quand un format enveloppe un codec, les brevets sont une question à part, que la norme ne tranche pas.

Rien n’est jeté

SRT enregistre son contenu à l’identique. Le réenregistrer ne change rien : vous pouvez l’ouvrir, le modifier et le réenregistrer autant de fois que vous voulez sans accumuler de dégâts, et c’est ce qui en fait un format de travail plutôt qu’un format de livraison.

Ce qui ouvre SRT

VLC, Subtitle Edit et Aegisub le lisent, comme la plupart des programmes du même genre.

Quand un fichier ne s’ouvre pas, le format est rarement en cause : le plus souvent, c’est le programme qui est plus ancien que lui. Convertir vers quelque chose de plus ancien est le contournement fiable, et c’est à cela que sert le reste de ce site.

L’ouvrir dans un navigateur

Aucun navigateur ne le lit.

C’est de loin la raison la plus fréquente de le convertir : non pas que le format soit mauvais, mais que l’endroit où vous voulez montrer le fichier ne sache pas le lire.

C’est un format de travail

SRT est fait pour être ouvert et modifié. Gardez le fichier dans ce format tant que le travail dure, et exportez depuis lui chaque fois qu’une version finie est nécessaire.

À quoi ressemble un fichier SRT à l’intérieur

C’est le format le plus simple et utile présent sur ce site. Un numéro sur sa propre ligne, puis une ligne avec deux horodatages et une flèche entre eux, puis une ou deux lignes de texte, puis une ligne vide. On recommence. C’est toute la spécification, et c’est pourquoi chaque lecteur, éditeur et plateforme le lit.

Les horodatages s’écrivent en heures, minutes, secondes et millisecondes, avec une virgule avant les millisecondes plutôt qu’un point. Cette virgule est la cause la plus fréquente d’un fichier rejeté par un analyseur strict après que quelqu’un l’a édité à la main, parce que la plupart du monde écrit les décimales de l’autre façon.

Pourquoi les sous-titres sont décalés

Deux pannes différentes, avec deux corrections différentes, et les distinguer prend dix secondes. Lancez la vidéo et vérifiez le premier sous-titre, puis vérifiez-en un vers la fin.

Si les deux sont décalés de la même quantité, c’est un décalage constant — les sous-titres ont été minutrés contre une version de la vidéo dont le début diffère, généralement parce que la vôtre contient un logo de distributeur ou une introduction plus longue. Décaler tous les horodatages du même nombre de secondes corrige complètement.

Si l’erreur grandit au fil de la vidéo, c’est une discordance de fréquence d’images. Les sous-titres ont été faits pour une version de diffusion à 25 images par seconde et votre fichier tourne à 23,976, ou l’inverse, donc les deux dérivent régulièrement. Cela demande un étirement proportionnel plutôt qu’un décalage, et aucun ajustement de décalage ne mettra les deux extrémités justes en même temps.

Caractères accentués et le piège de l’encodage

Un fichier SRT ne porte aucune déclaration de la manière dont son texte est stocké. Il n’y a nulle part dans le format où dire « ceci est de l’UTF-8 », donc le lecteur devine — et les lecteurs plus anciens devinent un encodage régional mono-octet, ce qui explique qu’un fichier de sous-titres espagnol ou polonais arrive plein de points d’interrogation et de carrés.

Enregistrez en UTF-8 et la plupart des lecteurs modernes ont raison. Certains lecteurs matériels anciens attendent l’encodage régional et maltraiteront l’UTF-8. Si le texte est mauvais, le fichier est généralement correct et le lecteur le lit mal ; le ré-enregistrer dans l’autre encodage est l’essai qui mérite d’être fait avant de conclure que le téléchargement était mauvais.

La marque d’ordre d’octets, et l’invisibilité qu’elle provoque

Certains éditeurs Windows ajoutent en tête de fichier une marque d’ordre d’octets (BOM) lorsqu’on enregistre en UTF-8, ces trois octets 0xEF 0xBB 0xBF qui disent « ce fichier est UTF-8 » au prix d’une pollution du tout début du document. La plupart des lecteurs ignorent la BOM, mais certains analyseurs stricts la prennent pour un caractère imprimable et le premier sous-titre commence par un caractère invisible.

L’assurance la plus simple consiste à enregistrer sans BOM, ce que la plupart des éditeurs modernes permettent dans leurs options d’export. Si un fichier présente ce symptôme précis — premier sous-titre avec un caractère fantôme, ou message d’erreur de l’analyseur sur la première ligne — ouvrir dans un éditeur qui montre les caractères non imprimables et ré-enregistrer en UTF-8 sans BOM règle la question en une seconde.

Les sous-titres sont aussi souvent livrés avec un décalage d’une seconde par rapport à la vidéo, parce que les outils de sous-titrage calent le sous-titre sur le moment où l’orateur a commencé à parler, alors que la majorité des spectateurs perçoivent l’audio avec un léger retard. Un fichier reçu avec un décalage systématique qui ne dépend pas de la position dans la vidéo se règle en quelques secondes avec un outil de décalage global, et la commande ffmpeg -itsoffset fait le travail. Le piège, c’est d’appliquer ce décalage à un fichier qui dérivait déjà à cause d’une discordance de fréquence d’images : on décale le début, mais la dérive continue plus loin, et on a ajouté un problème sans en résoudre un autre.

SRT n’a aucun style, et c’est voulu

Pas de polices, pas de couleurs, pas de positions, pas de minutage karaoké. Certains lecteurs honorent une poignée de balises de type HTML pour l’italique et le gras, mais c’est une convention plutôt qu’une partie du format, et un fichier qui s’appuie dessus apparaîtra sans style quelque part.

Tout ce qui est visuel est décidé par le lecteur : où les sous-titres se placent, leur taille, la couleur du contour. C’est pourquoi les fichiers SRT sont minuscules et universellement compatibles, et c’est pourquoi quiconque fait du design de sous-titres utilise ASS à la place, où position, police et effets font partie du fichier.

Faire charger le fichier par un lecteur

La plupart des lecteurs de bureau chargent automatiquement les sous-titres quand le fichier se trouve à côté de la vidéo avec le même nom — film.mp4 et film.srt dans le même dossier. Manquer le nom d’un seul caractère et rien n’apparaît, ce qui explique une bonne part des « mes sous-titres ne marchent pas ».

Un suffixe de langue avant l’extension, comme film.fr.srt, est la convention habituelle pour plusieurs langues et est compris par les lecteurs courants. Au-delà de cela : certains téléviseurs et boîtiers multimédias ne lisent les sous-titres depuis une clé USB que s’ils se trouvent sur la même partition que la vidéo, et presque aucun d’eux ne lit autre chose que SRT.

SRT face à VTT, et quand convertir

WebVTT est le format que les navigateurs utilisent pour les sous-titres sur une page web, et il est étroitement apparenté — la structure est presque identique, les horodatages utilisent un point au lieu d’une virgule, et le fichier commence par une ligne d’en-tête. La conversion entre les deux est surtout mécanique.

La règle est simple. La vidéo sur un site web demande VTT, parce que c’est ce qu’accepte l’élément vidéo HTML. La vidéo lue dans un lecteur de bureau, sur un téléviseur, ou téléversée sur une plateforme veut SRT. La conversion prend un instant, alors gardez celui que votre flux produit et convertissez au point de livraison plutôt que de maintenir deux copies qui finiront par diverger.

Éditer des sous-titres sans logiciel dédié

N’importe quel éditeur de texte. Le fichier est du texte, la structure est évidente, et corriger une faute de frappe ou décaler un sous-titre en retard est plus rapide là que dans un éditeur de sous-titres. Enregistrez en UTF-8 sans marque d’ordre d’octets et conservez la ligne vide entre les entrées — une ligne vide manquante fait disparaître tout ce qui suit dans les lecteurs stricts.

Pour tout ce qui est systématique — décaler l’ensemble du fichier, changer la fréquence d’images, resynchroniser contre une forme d’onde — un éditeur de sous-titres dédié fait le travail. Faire un décalage à la main sur neuf cents horodatages est possible dans un éditeur de texte et n’est pas une bonne soirée.

Les données, au même endroit

Identifiants et origine du format SRT.
Extension.srt
Type de médiaapplication/x-subrip
Première publication2000