Aller au contenu principal
SubtitleMatrix

Convertir SRT en TTML

Ou collez le texte d'un sous-titre

Ce que cette conversion change

Rien n'est perdu dans ce sens — chaque fonctionnalité du format source a un équivalent dans le format cible.

Ce rapport de pertes vient de la matrice de capacités de ces deux formats, pas du fichier particulier que vous avez chargé. Un fichier précis peut perdre davantage s'il utilise des fonctionnalités que le format autorise mais que la matrice ne modélise pas.

Cette page convertit un SRT en TTML, le format XML des sous-titres. Chaque bloc devient un élément p avec des attributs begin et end, imbriqué dans un body et le plus souvent un div, avec une déclaration XML en tête du document. Aucun numéro de bloc n'apparaît : le TTML identifie par la structure, pas par un compteur.

Rien n'est perdu dans ce sens. Les codes temporels gardent leurs millisecondes — 00:00:04,126 devient 00:00:04.126 — et un bloc de deux lignes garde son saut de ligne sous la forme d'un élément br. Le TTML dispose même d'un vocabulaire de styles et de régions plus riche que ce que le SRT sait exprimer.

Un fichier ou une saison entière, traité dans le navigateur, avec un ZIP à la fin.

Exemples

Un fichier SRT typique, converti en TTML

Entrée

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

Sortie

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:03.500">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000"><span tts:fontStyle="italic">Whispering</span> now.<br/>And a second line.</p>
<p begin="00:00:06.000" end="00:00:09.250"><span tts:fontWeight="bold">Bold</span> statement.</p>  </body>
</tt>

Aucune perte dans ce sens : les deux colonnes se comparent ligne par ligne.

La même conversion sur une entrée mal formée

Entrée

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

Sortie

<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
  <body>
<p begin="00:00:01.000" end="00:00:03.500"><span tts:fontWeight="bold">Bold</span> and <span tts:fontStyle="italic">italic</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000"></p>
<p begin="00:00:08.000" end="00:00:09.000">Last one.</p>  </body>
</tt>

C'est le genre de dégâts que portent les vrais fichiers : fins de ligne mélangées, espaces parasites, champs vides. Comparez avec l'exemple propre ci-dessus pour voir ce que l'analyseur pardonne.

Questions fréquentes

À quoi ressemble un SRT converti en TTML ?

À du TTML : pas de numéros de blocs, chaque sous-titre est un élément p avec begin et end, dans un body et souvent un div, sous une déclaration XML. Chaque bloc SRT donne un p, dans le même ordre et avec le même texte.

Les temps du SRT sont-ils exacts dans le TTML ?

Oui, à la milliseconde : le SRT écrit 00:00:04,126 et le TTML écrit 00:00:04.126. Rien n'est arrondi entre les deux, et un bloc de 2,9 secondes reste de 2,9 secondes.

Comment un bloc SRT de deux lignes sort-il en TTML ?

Deux lignes séparées par un élément br, qui est la manière dont le TTML écrit un saut de ligne dur. La paire reste un seul élément p, donc un seul sous-titre.

Le style en ligne du SRT a-t-il un équivalent TTML ?

Oui : le TTML décrit le style avec des attributs et des éléments dédiés, et son vocabulaire est plus large que les quelques balises du SRT. Ce que le SRT sait exprimer trouve donc une place dans la sortie.

Les blocs SRT gardent-ils leur ordre dans le TTML ?

Oui, et ils sont triés par début croissant : les éléments p du body se suivent dans l'ordre chronologique, ce que les lecteurs TTML attendent.

Que perd le retour TTML vers SRT ?

Le retour a sa propre liste : le style, le positionnement et les constructions propres au TTML. Le SRT ne sait ni placer un bloc ni conserver une région ou une feuille de style, donc ces éléments ne reviennent pas.

Le TTML produit est-il un XML valide ?

Oui, le document commence par une déclaration XML et ferme tous ses éléments. Il est écrit en UTF-8, avec des fins de ligne Unix et sans BOM, quel que soit l'encodage du SRT d'origine.

Outils associés