Convertir SMI en TTML
Ou collez le texte d'un sous-titre
Ce que cette conversion change
1 élément perdu ou à décider
- Contenu propre au format
le contenu que le format source garde hors de ses blocs (blocs hors sous-titres, texte d'en-tête, réglages par bloc, événements commentés) — le format cible n'a nulle part où le mettre
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 SAMI (`.smi`) en TTML, le format XML des sous-titres de diffusion. Le SAMI est un document HTML où chaque `<SYNC Start=…>` remplace l’écran ; le TTML range chaque sous-titre dans un élément `<p>` portant `begin` et `end`.
Une seule famille se perd : les constructions propres à SAMI — bloc `<STYLE>`, `<TITLE>`, attributs `Class=`, logique de nettoyage par `<P> `. Le rapport affiché en haut de page vient des capacités déclarées par chaque format, pas de votre fichier : il ne change donc pas selon ce que vous déposez, et il nomme chaque famille de données qui n’a pas de place dans la sortie.
La sortie est un document XML en UTF-8, avec une déclaration XML et un élément `tt`. Tout se passe dans le navigateur, sans envoi ni compte. Plusieurs fichiers peuvent être déposés ensemble : la file les traite l’un après l’autre, l’annulation est possible, et les résultats arrivent dans une archive ZIP.
Exemples
Un fichier SAMI courant converti en TTML
Entrée
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
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.000">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000">How are you?<br/>Fine, thanks.</p> </body>
</tt>
Perdue dans cette sortie : la structure propre à SAMI. Chaque bloc devient un paragraphe XML avec begin et end, dans l’ordre chronologique.
La même conversion sur une entrée abîmée
Entrée
<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
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.500" end="00:00:09.000">Line one<br/>Line two</p>
<p begin="00:00:09.000" end="00:00:12.000">Tom & Jerry</p> </body>
</tt>
SYNC orphelins, entités HTML et blocs vides : le XML produit reste valide, et les blocs écartés sont comptés dans le rapport.
Questions fréquentes
À quoi ressemble la sortie quand un SAMI devient un TTML ?
À un document TTML : déclaration XML, élément `tt`, un `body`, puis un `<p begin="00:00:04.126" end="00:00:06.250">` par sous-titre. Un bloc SAMI donne un paragraphe, dans l’ordre du document, et les `<br>` deviennent des `<br/>`.
Comment le TTML calcule-t-il la fin d’un bloc SAMI ?
Le SAMI ne stocke pas de fin : c’est le `<SYNC>` suivant qui efface l’écran. La conversion reprend donc cet instant comme attribut `end`, et fabrique une durée pour le dernier bloc. Le TTML exige les deux bornes, même quand la source n’en fournit qu’une.
Que deviennent le bloc STYLE et le TITLE du SAMI dans le TTML ?
Ils ne sont pas recopiés sous la même forme. Un TTML décrit son apparence avec ses propres éléments de style et ses régions, pas avec du CSS dans un `<STYLE>` HTML ni avec un `<TITLE>` de document. Le contenu des blocs reste, mais l’habillage HTML d’origine n’est pas transposé tel quel.
Comment un paragraphe SAMI sur deux lignes sort-il en TTML ?
En deux lignes séparées par `<br/>` à l’intérieur du même `<p>`. Le regroupement est préservé : les deux lignes forment un seul sous-titre et ne deviennent pas deux paragraphes distincts, ce qui correspond au rendu du document SAMI.
Les blocs SAMI 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 `<SYNC>` se chevauchaient ressort avec des paragraphes chronologiques ; c’est nécessaire, car un lecteur TTML parcourt le document dans l’ordre où il est écrit.
Le retour du TTML vers le SAMI est-il sans perte ?
Non : le TTML vers SAMI perd les styles, les régions et les constructions XML propres à TTML. Cette page-ci, dans le sens SAMI vers TTML, ne perd que les constructions SAMI ; le texte, les instants au millième et les sauts de ligne passent.