Aller au contenu principal
SubtitleMatrix

Convertir ASS en VTT

Conversion de formatsAdvanced SubStation Alpha (ASS)
Ou collez le texte d'un sous-titre

Ce que cette conversion change

4 éléments perdus ou à décider

  • Style

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

  • Positionnement

    le positionnement à l'écran (chaque bloc revient à la position par défaut)

  • 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 ASS en WebVTT. Les blocs Dialogue deviennent des blocs VTT, avec des codes temporels à la milliseconde et un en-tête WEBVTT. Le texte, les coupures de ligne et l'ordre des sous-titres passent.

Les deux formats ne stockent pas les mêmes choses : le style, le positionnement, le karaoké et les constructions propres au script n'ont pas de place dans un VTT. Le gras et l'italique écrits dans le texte passent en balises, car le VTT accepte le balisage en ligne, mais la couleur, le contour, l'ombre, les marges et les styles nommés du script sont perdus. Les sections [Fonts] et [Graphics] ne sont pas reprises, et un code de surcharge que la conversion ne modélise pas, comme un fondu, reste tel quel dans le texte plutôt que d'être deviné.

Un fichier ou une saison entière, traité dans le navigateur, avec un seul ZIP à la fin.

Exemples

Un fichier ASS typique, converti en VTT

Entrée

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Sortie

WEBVTT

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

00:00:05.000 --> 00:00:08.500
<i>Italic</i> and <b>bold</b> text.

00:00:09.000 --> 00:00:12.000
Positioned

00:00:13.000 --> 00:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>

00:00:17.000 --> 00:00:20.000
Line one
Line two

00:00:21.000 --> 00:00:24.000
Top left

Les pertes annoncées sont le style, le positionnement, le karaoké et les constructions propres au script : le texte se compare ligne par ligne.

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

Entrée

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Sortie

WEBVTT

00:00:01.000 --> 00:00:04.000
Hello, world

00:00:05.000 --> 00:00:08.000
{\fad(300,300)}Unmodelled override

00:00:09.000 --> 00:00:12.000
Both, wrong order

00:00:13.000 --> 00:00:16.500
One decimal centisecond

00:00:17.000 --> 00:00:20.000
Soft
break

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

Que garde un VTT d'un script ASS ?

Le texte, les temps et l'ordre des Dialogue, plus les balises de gras et d'italique écrites dans le texte. Ce que le script déclarait dans sa table de styles, ses codes de position et son karaoké est perdu.

Les codes \pos et \an7 d'un ASS passent-ils dans le VTT ?

Non : ils sont retirés. Le VTT a ses propres réglages de position après le code temporel, mais la conversion n'en invente pas un à partir d'un code ASS, car une correspondance approximative placerait le texte au mauvais endroit.

Le karaoké \k et \kf d'un ASS survit-il dans le VTT ?

Non : les durées par syllabe n'ont pas d'équivalent dans la sortie. Le texte reste, mais l'animation syllabique du script ne peut pas être reconstituée depuis le fichier VTT.

Que deviennent les couleurs et le contour d'un ASS dans le VTT ?

Ils sont perdus : le VTT ne place pas de couleur de contour ni d'ombre dans une table de styles, et la conversion ne reporte pas la table [V4+ Styles]. Une couleur écrite dans le texte peut passer en balise font color, mais le style nommé ne suit pas.

Que deviennent [Script Info], [Fonts] et [Graphics] dans le VTT ?

Ils sont écartés : le VTT a son propre en-tête WEBVTT, et il ne reprend ni la table de styles, ni les ressources embarquées du script. Les événements Comment: et Picture: ne deviennent pas non plus des blocs.

Les temps au centième d'un ASS sont-ils exacts dans le VTT ?

Oui : 0:00:04.13 devient 00:00:04.130. Le VTT écrit à la milliseconde, donc la valeur gagne des zéros sans arrondi ni décalage.

Comment un Dialogue ASS de deux lignes sort-il en VTT ?

Sur deux lignes dans le même bloc. La paire garde un seul début et une seule fin, et reste donc un seul sous-titre, le VTT séparant les blocs par une ligne vide et non par la fin du texte.

Outils associés