Aller au contenu principal
SubtitleMatrix

Convertir VTT en ASS

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 WebVTT en ASS. Le fichier produit contient l'en-tête de script, la table de styles et les événements Dialogue qu'un lecteur attend, car l'ASS est un script complet et non une simple liste de blocs. La conversion se fait dans le navigateur : rien n'est téléversé, aucun compte n'est nécessaire, et la page continue de fonctionner réseau coupé après chargement.

Les deux formats s'accordent sur le texte, les retours à la ligne et l'ordre des blocs, donc vous retrouvez les mêmes sous-titres dans une syntaxe plus riche. Deux différences comptent. L'ASS stocke le temps au centième de seconde, donc 00:00:01.234 devient 0:00:01.23 : chaque code temporel est arrondi aux 10 ms les plus proches, avec un écart maximal de 5 ms. Et l'ASS exige une table de styles, que le WebVTT ne possède pas : un style Default — Arial 20, blanc à contour noir — est écrit pour vous et reste modifiable ensuite.

Ce qui ne passe pas, c'est tout ce que le WebVTT stocke en dehors des blocs : l'en-tête et son commentaire, les blocs NOTE, STYLE et REGION, et les réglages qui suivent un code temporel comme align:start ou position:10%. L'ASS place le texte avec ses propres codes de surcharge, et cette conversion n'en invente pas. Le rapport de pertes les énumère et, une fois le fichier chargé, indique la quantité réellement présente.

Exemples

Un fichier VTT typique, converti en ASS

Entrée

WEBVTT

intro
00:00:01.000 --> 00:00:04.000
Hello there.

00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.

Sortie

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:04.50,0:00:08.00,Default,,0,0,0,,Second line with {\i1}italics{\i0}.

Les pertes annoncées sont la précision et les constructions propres au VTT : le texte se compare ligne par ligne.

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

Entrée

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

Sortie

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,No header, two lines before the timecode.

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

Pourquoi les temps du VTT sont-ils arrondis dans l'ASS ?

Parce que l'ASS compte les centièmes de seconde et le WebVTT les millisecondes : 00:00:01.234 devient 0:00:01.23, avec un déplacement maximal de 5 ms par borne. Invisible à la lecture vidéo, l'écart peut compter lors d'une comparaison image par image.

D'où vient la table de styles du script ASS produit à partir d'un VTT ?

Elle est écrite par le convertisseur, car un script ASS sans style n'est pas lisible. Elle contient un style nommé Default, Arial taille 20, texte blanc à contour noir, et chaque ligne Dialogue s'y rattache ; une modification ultérieure dans un éditeur est écrasée si la conversion est relancée.

Que deviennent align:start et position:10% d'un fichier VTT dans l'ASS ?

Ils sont perdus. L'ASS place un bloc avec des codes de surcharge dans le texte, comme \an7 ou \pos(320,240), et les réglages du WebVTT forment un vocabulaire différent sans correspondance exacte. La conversion ne devine pas un placement : elle signale le réglage comme perdu.

Les blocs NOTE, STYLE et REGION d'un VTT survivent-ils dans l'ASS ?

Non : ce sont des constructions propres au WebVTT sans équivalent ASS. STYLE est le plus coûteux, car il peut porter les règles de mise en page de tout le document ; le style doit être reconstruit dans l'ASS si le rendu en dépend.

L'italique et le gras d'un VTT deviennent-ils du style ASS ?

Oui : une portion en italique ou en gras est encadrée par les codes de surcharge correspondants. Ce que le fichier VTT disait globalement — police, taille, contour, ombre, marges — reste dans le bloc STYLE et ne passe pas.

Un bloc VTT de deux lignes tient-il dans une seule ligne Dialogue ASS ?

Oui, grâce au code de saut de ligne de l'ASS. Les deux lignes gardent le minutage du bloc et restent un seul événement, au lieu de devenir deux sous-titres voisins.

Peut-on convertir un VTT confidentiel sans l'envoyer ?

Oui : l'analyse et l'écriture se font dans l'onglet du navigateur, sans requête portant le texte, les temps ou les blocs. La sortie est écrite localement, et la page continue de convertir réseau coupé.

Outils associés