Convertir SBV en ASS
Ou collez le texte d'un sous-titre
Ce que cette conversion change
1 élément perdu 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
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 SBV en ASS (Advanced SubStation Alpha v4.00+). Le SBV décrit un sous-titre par une seule ligne portant deux horodatages séparés par une virgule, au millième de seconde, puis les lignes de texte ; l’ASS décrit le même sous-titre par une ligne `Dialogue:` dans une section `[Events]`.
La seule chose qui se perd dans ce sens est la précision : ASS écrit les instants en centièmes (`0:00:04.13`) là où le SBV écrit des millisecondes (`0:00:04.126`). Chaque timecode est donc arrondi aux 10 ms les plus proches, sans étirement ni réordonnancement, et aucun bloc ne bouge de plus de 5 ms.
Le fichier produit contient un en-tête `[Script Info]`, une section `[V4+ Styles]` et des événements avec la colonne `Layer`. Le fichier est traité dans le navigateur, sans envoi ni inscription. Un lot complet peut être déposé d’un coup : la file travaille dans l’ordre, l’opération est annulable et les résultats reviennent dans une archive ZIP.
Exemples
Un fichier SBV courant converti en ASS
Entrée
0:00:01.000,0:00:03.500
The quick brown fox.
0:00:04.000,0:00:06.250
Jumps over the lazy dog.
0:00:07.000,0:00:09.000
Two lines here.
And a second one.
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:03.50,Default,,0,0,0,,The quick brown fox.
Dialogue: 0,0:00:04.00,0:00:06.25,Default,,0,0,0,,Jumps over the lazy dog.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Two lines here.\NAnd a second one.
Perdue dans cette sortie : la précision au millième. Les timecodes passent au centième le plus proche, le texte et l’ordre des blocs restent identiques.
La même conversion sur une entrée abîmée
Entrée
0:00:02.000,0:00:04.000
Carriage-return line endings.
0:00:06.000,0:00:08.000
Indented timecode, no final newline.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:02.00,0:00:04.00,Default,,0,0,0,,Carriage-return line endings.
Dialogue: 0,0:00:06.00,0:00:08.00,Default,,0,0,0,,Indented timecode, no final newline.
Retours chariot isolés, espace avant le timecode et absence de fin de ligne : les blocs lisibles sortent quand même, les couples de temps réparés sont rapportés.
Questions fréquentes
Pourquoi les horodatages changent-ils d’un SBV vers un ASS ?
ASS écrit un instant en centièmes, `0:00:04.13`, tandis que le SBV l’écrit en millisecondes, `0:00:04.126`. Chaque timecode est donc arrondi aux 10 ms les plus proches : 4,126 s devient 4,13 s. Rien n’est étiré ni réordonné et aucun bloc ne se déplace de plus de 5 ms, mais l’alignement sur un autre fichier n’est plus exact à la milliseconde.
À quoi ressemble la sortie quand un SBV devient un ASS ?
À un script ASS : `[Script Info]` avec `ScriptType: v4.00+`, `[V4+ Styles]` avec une ligne `Style:`, puis `[Events]` où chaque sous-titre est une ligne `Dialogue:` dont la première colonne est `Layer`. Un bloc SBV donne un dialogue, dans le même ordre, avec le même texte.
Comment un bloc SBV sur deux lignes sort-il en ASS ?
Les deux lignes sont jointes par `\N`, la façon dont ASS écrit un saut de ligne dur. Le regroupement survit : les deux lignes SBV restent un seul sous-titre dans l’ASS produit, et le lecteur les affiche ensemble.
Les blocs SBV gardent-ils leur ordre dans la sortie ASS ?
Oui, et ils sont triés par heure de début au passage, du plus tôt au plus tard. Un fichier SBV dont les blocs se suivaient dans le désordre ressort rangé : c’est un changement de structure, pas de contenu, et il est assumé.
Peut-on revenir de l’ASS au SBV sans rien perdre ?
Non, le retour est la direction coûteuse : style, position, karaoké et constructions propres à l’ASS n’ont pas de place dans un SBV. Cette page-ci ne perd que la précision ; les autres pertes n’apparaissent que si vous repartez dans l’autre sens.
L’ASS produit conserve-t-il l’encodage du fichier SBV ?
Non. La sortie est en UTF-8, avec des fins de ligne Unix et sans BOM, quel que soit l’encodage d’origine. Un fichier arrivé en UTF-16 ou dans un encodage Windows sur un octet est décodé à la lecture, et le panneau de résultat le signale lorsque c’est le cas.