Aller au contenu principal
SubtitleMatrix

Convertir SSA en SMI

Conversion de formatsSubStation Alpha (SSA)
Ou collez le texte d'un sous-titre

Ce que cette conversion change

3 éléments perdus ou à décider

  • Style

    tout le style sauf le gras et l'italique (couleur, contour, ombre, marges)

  • Karaoké

    le minutage karaoké (surlignage par syllabe)

  • 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 SSA en SAMI (`.smi`). La sortie est un document HTML à la manière de Microsoft : une suite de blocs `<SYNC Start=…>` qui remplacent ce qui est à l’écran, chacun portant un paragraphe `<P Class=…>`, et un bloc de nettoyage après chaque sous-titre.

Trois choses se perdent : le style global porté par la table SSA, le karaoké et les constructions propres au SSA. La position, elle, n’est pas dans la liste : SAMI la confie à la feuille de style du document. La liste affichée en haut de page vient de ce que chaque format sait exprimer, pas de votre fichier : elle ne change donc pas selon ce que vous déposez.

Le traitement se fait dans le navigateur, sans envoi de fichier ni inscription. Plusieurs fichiers peuvent être déposés d’un coup : la file les traite dans l’ordre et les résultats repartent ensemble dans une archive ZIP.

Exemples

Un fichier SSA courant converti en SAMI

Entrée

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[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: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

Sortie

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there.
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=5000>
<P><i>Italic</i> line.
<SYNC Start=8000>
<P>&nbsp;
<SYNC Start=9000>
<P>Two<br>lines
<SYNC Start=12000>
<P>&nbsp;
</BODY>
</SAMI>

Perdus dans cette sortie : le style global, le karaoké et les constructions propres au SSA. Les blocs deviennent des `<SYNC>` successifs, chacun suivi d’un nettoyage `&nbsp;`.

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

Entrée

[Script Info]
Title: Dirty SSA
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
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

Sortie

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P><b>Bold</b> and <u>underlined</u>.
<SYNC Start=4000>
<P>&nbsp;
<SYNC Start=5000>
<P>A soft<br>break and a {\p1}mystery{\p0} code.
<SYNC Start=8000>
<P>&nbsp;
</BODY>
</SAMI>

BOM, fins de ligne Windows et champs vides : le document SAMI reste bien formé, les accents et les sauts de ligne sont conservés et les réparations sont signalées.

Questions fréquentes

Quel style survit d’un SSA vers un SMI ?

L’accentuation écrite dans le texte, sous forme de `<b>`, `<i>`, `<u>` et `<font color="…">`, que le navigateur applique. La table de styles du SSA, en revanche, ne passe pas : police, taille, contour, ombre et marges disparaissent, et c’est la feuille CSS du document SAMI qui décide de l’apparence.

Que devient le minutage karaoké d’un SSA dans un SMI ?

Les codes `\k`, `\kf` et `\ko` marquent un instant à l’intérieur d’une ligne, alors qu’un bloc SAMI porte un seul début et se termine au `<SYNC>` suivant. Le minutage interne est perdu, les syllabes restent en texte ordinaire.

Que deviennent `[Script Info]` et les polices intégrées dans le SMI ?

Seuls les `Dialogue:` deviennent des sous-titres. Le titre, la table `[V4 Styles]`, les lignes `Comment:` et le contenu de `[Fonts]` et `[Graphics]` sont abandonnés. Le SAMI produit sa propre tête `<STYLE>` et ne transporte pas de police.

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

À un document SAMI complet : `SAMI`, `HEAD` avec un bloc `STYLE`, puis `BODY`. Chaque sous-titre est un `<SYNC Start=…>` suivi d’un `<P Class=…>`, et un second `<SYNC>` avec `<P>&nbsp;` remet l’écran à vide juste après. Un bloc sur deux lignes utilise `<br>`.

Les temps du SSA sont-ils exacts dans le fichier SMI ?

Oui. Un instant SSA comme `0:00:04.13` vaut 4 130 ms et devient `Start=4130` ; les centièmes se traduisent en millisecondes entières sans perte. La fin d’un bloc n’est pas écrite : c’est le `<SYNC>` suivant qui la fixe.

Le SMI produit peut-il revenir vers un SSA sans perte ?

Non. Le retour SMI vers SSA coûte la précision, puisque SSA arrondit au centième, et les constructions SAMI — bloc `<STYLE>`, `<TITLE>`, attributs `Class=` — n’ont pas de place dans un SSA. Ce que cette page a déjà perdu ne peut pas non plus être reconstruit.

Outils associés