Aller au contenu principal
SubtitleMatrix

Convertir SBV 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 fichier SBV en TTML, le format XML des sous-titres de diffusion. Le SBV décrit un sous-titre par deux temps et du texte ; le TTML en fait un élément `<p>` avec les attributs `begin` et `end`, rangé dans un `<body>`.

Rien n’est perdu dans ce sens : le SBV ne contient que des blocs et du texte, et le TTML sait représenter les deux à la milliseconde. La liste affichée en haut de page est calculée à partir de ce que chaque format sait exprimer, et non de votre fichier : elle reste donc identique quel que soit le contenu déposé.

La sortie commence par une déclaration XML et reste de l’UTF-8. Le fichier est traité dans le navigateur, sans envoi ni inscription. Un lot complet peut être déposé d’un coup : la file travaille dans l’ordre, l’opération est annulable et les résultats reviennent dans une archive ZIP.

Exemples

Un fichier SBV courant converti en TTML

Entrée

0:00:01.000,0:00:03.500
The quick brown fox.

0:00:04.000,0:00:06.250
Jumps over the lazy dog.

0:00:07.000,0:00:09.000
Two lines here.
And a second 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">The quick brown fox.</p>
<p begin="00:00:04.000" end="00:00:06.250">Jumps over the lazy dog.</p>
<p begin="00:00:07.000" end="00:00:09.000">Two lines here.<br/>And a second one.</p>  </body>
</tt>

Rien n’est perdu ici : chaque bloc devient un paragraphe XML, et la chronologie se lit dans les attributs begin et end.

La même conversion sur une entrée abîmée

Entrée

0:00:02.000,0:00:04.000
Carriage-return line endings.

	0:00:06.000,0:00:08.000
Indented timecode, no final newline.

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:02.000" end="00:00:04.000">Carriage-return line endings.</p>
<p begin="00:00:06.000" end="00:00:08.000">Indented timecode, no final newline.</p>  </body>
</tt>

BOM, fins de ligne Windows et blocs sans couple de temps : le XML produit reste valide, et les blocs écartés sont déclarés.

Questions fréquentes

À quoi ressemble la sortie quand un SBV devient un TTML ?

À un document TTML : déclaration XML, élément `tt`, `body`, puis un `<p begin="00:00:04.126" end="00:00:07.000">` par sous-titre. Un bloc SBV donne un paragraphe, dans le même ordre et avec le même texte.

Les horodatages SBV sont-ils exacts dans le fichier TTML ?

Oui. `0:00:04.126` vaut 4 126 ms et s’écrit `00:00:04.126` dans les attributs `begin` et `end`. La milliseconde est acceptée telle quelle, sans arrondi, et un bloc de 2,9 s garde exactement 2 900 ms.

Comment un bloc SBV sur deux lignes sort-il en TTML ?

En deux lignes séparées par `<br/>`, à l’intérieur du même paragraphe `<p>`. Le regroupement est donc préservé : les deux lignes ne deviennent pas deux sous-titres, et le lecteur les affiche ensemble.

Les blocs SBV gardent-ils leur ordre dans le TTML produit ?

Oui, et ils sont triés par heure de début au passage. Un fichier dont les blocs se chevauchaient ou se suivaient dans le désordre ressort chronologique ; le TTML lit ses paragraphes dans l’ordre du document, cet ordre doit donc être juste.

Que perd le retour du TTML vers le SBV ?

Le TTML vers SBV perd le style et les constructions propres à TTML — déclaration XML, éléments de style, attributs de placement. La direction de cette page est sans perte, parce qu’un SBV ne contient rien que le TTML ne sache exprimer.

Le TTML produit garde-t-il l’encodage du fichier SBV ?

Non. La sortie est toujours en UTF-8, avec des fins de ligne Unix et sans BOM. Un SBV arrivé en UTF-16 ou dans un encodage Windows est décodé à l’entrée, et ce décodage apparaît dans le panneau de résultat.

Outils associés