Convertir CSV en SMI
Ou collez le texte d'un sous-titre
Ce que cette conversion change
Rien n'est perdu dans ce sens — chaque fonctionnalité du format source a un équivalent dans le format cible.
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 SAMI. Chaque ligne devient une balise `<SYNC Start=4126>` avec son texte dans un `<P>`, suivie d’un `<P> ` qui vide l’écran jusqu’au bloc suivant.
SAMI et le CSV notent tous deux la milliseconde : les bornes passent sans arrondi. Le tableau ne porte ni styles, ni positions, ni karaoké, et le SAMI n’en reçoit pas. La liste ci-dessus est vide, parce qu’aucune capacité du CSV ne manque au SAMI.
Un fichier ou une saison complète : la file les traite dans l’ordre et les résultats descendent dans un ZIP. Le navigateur suffit.
Exemples
Un fichier CSV typique, converti en SMI
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
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>The quick brown fox.
<SYNC Start=3500>
<P>
<SYNC Start=4000>
<P>Jumps over, the lazy dog.
<SYNC Start=6250>
<P>
<SYNC Start=7000>
<P>Two lines here.<br>And a second one.
<SYNC Start=9000>
<P>
</BODY>
</SAMI>
Rien n’est perdu ici : chaque ligne du tableau devient une balise SYNC à la même milliseconde, avec le même texte.
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
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there, friend.
<SYNC Start=4000>
<P>
<SYNC Start=5000>
<P>Second line.
<SYNC Start=7000>
<P>
<SYNC Start=10000>
<P>End before start.
<SYNC Start=10001>
<P>
<SYNC Start=12000>
<P>Unquoted comma in text, right here.
<SYNC Start=14000>
<P>
</BODY>
</SAMI>
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
Comment une ligne d’un CSV devient-elle une balise SYNC dans le SMI ?
Une balise `<SYNC Start=4126>` ouvre le bloc, le texte va dans un `<P>`, puis un `<P> ` efface l’écran. La fin du bloc n’écrit pas de balise : c’est le bloc vide qui joue ce rôle.
Les heures d’un CSV sont-elles arrondies dans le SMI ?
Non. Le CSV et le SAMI descendent tous deux à la milliseconde : `00:00:04.126` sort en `Start=4126`. Aucun décalage n’est introduit.
Une cellule CSV de deux lignes reste-t-elle groupée en SMI ?
Dans le même `<P>`, les lignes séparées par `<br>`. Le regroupement est conservé et le lecteur les affiche ensemble.
Le SMI produit depuis un CSV contient-il un bloc STYLE ?
Oui, un bloc minimal pour le corps du document. Comme le CSV n’apporte aucun style, il n’y a rien d’autre à traduire : ni police, ni couleur, ni position.
Puis-je revenir d’un SMI vers le CSV d’origine ?
Oui, avec sa propre liste : SMI vers CSV perd les styles, la position et le contenu propre au format, notamment le bloc `<STYLE>` et les commentaires. Les deux listes ne se répondent pas symétriquement.