Convertir CSV en SSA
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 tableau CSV en script SSA. Elle lit le début, la fin et le texte par la ligne d’en-tête, puis écrit une ligne `Dialogue:` par ligne du tableau, avec la table `[V4 Styles]` du script.
SSA mesure au centième de seconde : les heures du tableau, notées au millième, sont arrondies aux 10 ms les plus proches. C’est la seule perte de cette direction, et elle vient des capacités des formats, pas d’une particularité de votre fichier.
Un fichier ou un lot complet : la file les traite dans l’ordre et les rassemble dans un ZIP. Aucun octet ne part vers un serveur.
Exemples
Un fichier CSV typique, converti en SSA
Entrée
start,end,text
00:00:01.000,00:00:03.500,The quick brown fox.
00:00:04.000,00:00:06.250,"Jumps over, the lazy dog."
00:00:07.000,00:00:09.000,"Two lines here.
And a second one."
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.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.
Dans cette sortie, seule la précision est perdue : les millisecondes du tableau deviennent des centièmes. Le reste correspond ligne pour ligne.
La même conversion sur une entrée abîmée
Entrée
id,start,end,note,text
1,00:00:01,000,00:00:04,000,cue one,"Hello there, friend."
2,00:00:05.000,00:00:07.000,cue two,Second line.
bad,notatime,00:00:09.000,cue three,Unreadable start.
4,00:00:10.000,00:00:09.000,cue four,End before start.
5,00:00:12.000,00:00:14.000,cue five,Unquoted comma in text, right here.
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:04.00,Default,,0,0,0,,Hello there, friend.
Dialogue: 0,0:00:05.00,0:00:07.00,Default,,0,0,0,,Second line.
Dialogue: 0,0:00:10.00,0:00:10.01,Default,,0,0,0,,End before start.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,Unquoted comma in text, right here.
C’est le genre de dégâts des vrais fichiers : fins de ligne mélangées, espaces parasites, champs vides. Comparez avec l’exemple propre ci-dessus pour voir ce que le lecteur pardonne.
Questions fréquentes
Pourquoi les heures d’un CSV sont-elles arrondies dans un script SSA ?
SSA écrit `0:00:04.13`, au centième, là où le CSV note `00:00:04.126`. Chaque borne est arrondie aux 10 ms les plus proches ; aucune ligne ne se déplace de plus de 5 ms.
Comment les colonnes d’un CSV sont-elles interprétées pour produire un SSA ?
Par leur nom d’en-tête, avec les synonymes habituels ; sans en-tête, dans l’ordre `start`, `end`, `text`. Une ligne dont le début est illisible est écartée et comptée dans le rapport.
Quel script SSA sort d’un tableau CSV ?
À un script SSA : `[Script Info]`, une table `[V4 Styles]` minimale, puis les lignes `Dialogue:` de `[Events]`. Chaque ligne du tableau donne un `Dialogue:`, avec un champ `Marked` à la place du numéro.
Une cellule CSV de plusieurs lignes reste-t-elle groupée en SSA ?
Dans le même `Dialogue:`, les lignes séparées par `\N`. Le regroupement est conservé et le lecteur les affiche ensemble.
Puis-je revenir d’un SSA vers le CSV d’origine ?
Oui, avec une autre liste : SSA vers CSV perd les styles, la position, le karaoké et le contenu propre au format, comme `[Script Info]` et les lignes `Comment:`.