Aller au contenu principal
SubtitleMatrix

Convertir SMI en SSA

Ou collez le texte d'un sous-titre

Ce que cette conversion change

2 éléments perdus ou à décider

  • Précision

    la précision du minutage — l'horloge de la sortie est plus grossière, chaque code temporel est donc arrondi au 10 ms le plus proche

  • 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 SSA (SubStation Alpha v4.00). Le SAMI décrit ses sous-titres dans un document HTML avec `<SYNC>` et `<P Class=…>` ; le SSA aligne des dialogues dans `[Events]`, après un en-tête et une table `[V4 Styles]`.

Deux familles se perdent : la précision du temps, puisque SSA compte en centièmes, et les constructions propres à SAMI. 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.

Le fichier produit est un SSA complet, avec `ScriptType: v4.00`, `[V4 Styles]` et la colonne `Marked`. 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 SSA

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>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Sortie

[Script Info]
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.

Perdus dans cette sortie : la précision au millième et la structure SAMI. Le fichier gagne l’en-tête SSA, sa table de styles et ses dialogues.

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 &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Sortie

[Script Info]
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:02.50,0:00:09.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Tom &amp; Jerry

Entités, SYNC sans texte et classes inconnues : les blocs valides sont convertis, et les écarts sont déclarés dans le rapport de lecture.

Questions fréquentes

Pourquoi les horodatages d’un SAMI vers un SSA changent-ils ?

Le SAMI écrit un instant en millisecondes, `Start=4126`, et le SSA en centièmes, `0:00:04.13`. Chaque début est donc arrondi aux 10 ms les plus proches, avec au plus 5 ms d’écart. Rien n’est étiré ni réordonné, mais l’alignement au millième n’est plus exact.

À quoi ressemble la sortie quand un SAMI devient un SSA ?

À un script SSA : `[Script Info]` avec `ScriptType: v4.00`, la table `[V4 Styles]` avec sa ligne `Format:`, puis `[Events]` où chaque sous-titre est un `Dialogue:` commençant par `Marked=0`. Un bloc SAMI donne un dialogue, dans l’ordre chronologique.

Que deviennent le bloc STYLE et les classes du SAMI dans le SSA ?

Ils ne sont pas traduits en styles SSA. Le SAMI décrit son apparence en CSS dans `<STYLE>` et la sélectionne par `Class=` ; le SSA utilise `[V4 Styles]` et une colonne `Style:`. Les deux modèles sont différents, donc la classe n’est pas recopiée comme nom de style et l’apparence du document d’origine est abandonnée.

Comment un paragraphe SAMI sur deux lignes sort-il en SSA ?

Les deux lignes sont jointes par `\N`, l’échappement de saut de ligne dur du SSA. Elles restent un seul dialogue et un seul sous-titre à l’affichage, exactement comme les deux lignes d’un même `<P>` SAMI.

Les blocs SAMI conservent-ils leur ordre dans le SSA produit ?

Oui, et ils sont triés par heure de début au passage. Un SAMI dont les `<SYNC>` se chevauchaient ressort avec des dialogues chronologiques ; c’est un changement de structure assumé, qui ne touche ni le texte ni les instants de début.

Le retour du SSA vers le SAMI est-il sans perte ?

Non : le SSA vers SAMI perd le style, la position, le karaoké et toutes les constructions propres au SSA. Ici, dans le sens SAMI vers SSA, les pertes sont la précision et la structure SAMI, notamment le `<STYLE>` et le `<TITLE>` du document d’origine.

Outils associés