Naar de hoofdinhoud
SubtitleMatrix

CSV naar SMI

Of plak ondertiteltekst

Wat deze conversie verandert

In deze richting gaat niets verloren — elk kenmerk van het bronformaat heeft in het doelformaat een plek.

Deze lijst komt uit de capaciteitenmatrix voor deze twee formaten, niet uit het bestand dat je hebt geladen. Een specifiek bestand kan meer verliezen wanneer het kenmerken gebruikt die het formaat toestaat maar de matrix niet modelleert.

Deze pagina zet CSV om naar SMI. Je sleept een bestand naar het vak of plakt de tekst erin, en je krijgt de SMI-versie terug. De conversie draait volledig in je browser: er wordt niets geüpload en je hebt geen account nodig.

In deze richting gaat niets verloren. Elke eigenschap die CSV kan uitdrukken heeft een equivalent in SMI, dus je krijgt dezelfde ondertitels in een andere verpakking: tijdlijn, regelbreuken en tekst blijven allemaal intact. Dat geldt voor elk CSV-bestand, ook eentje dat alles gebruikt wat het formaat toestaat.

Eén bestand kan, een heel seizoen ook: de wachtrij werkt ze in volgorde af en levert één ZIP op.

Voorbeelden

Een typisch CSV-bestand, omgezet naar SMI

Invoer

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."

Uitvoer

<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>&nbsp;
<SYNC Start=4000>
<P>Jumps over, the lazy dog.
<SYNC Start=6250>
<P>&nbsp;
<SYNC Start=7000>
<P>Two lines here.<br>And a second one.
<SYNC Start=9000>
<P>&nbsp;
</BODY>
</SAMI>

In deze uitvoer gaat niets verloren. Al het andere komt rij voor rij overeen.

Dezelfde conversie op een rommelige invoer

Invoer

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.

Uitvoer

<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>&nbsp;
<SYNC Start=5000>
<P>Second line.
<SYNC Start=7000>
<P>&nbsp;
<SYNC Start=10000>
<P>End before start.
<SYNC Start=10001>
<P>&nbsp;
<SYNC Start=12000>
<P>Unquoted comma in text, right here.
<SYNC Start=14000>
<P>&nbsp;
</BODY>
</SAMI>

Zo zien echte tabellen er vaak uit: een kopregel met andere namen, een tijdcode zonder aanhalingstekens, een lege cel. Vergelijk het met het nette voorbeeld hierboven om te zien wat de parser vergeeft.

Veelgestelde vragen

Hoe ziet de uitvoer eruit als CSV SMI wordt?

Als SMI: geen bloknummers en geen tijdcode-regel, maar voor elk blok een <SYNC Start=…>-tag met de tekst in een <P> eronder, en — omdat een SYNC vervangt wat er op het scherm stond — direct daarna een <P>&nbsp;-blok dat het scherm leegmaakt. Elk CSV-blok wordt één SMI-blok, in dezelfde volgorde en met dezelfde tekst.

Zijn de CSV-tijden exact in het SMI-bestand?

Ja, tot op de milliseconde — fijner gaat geen van beide formaten. CSV schrijft een moment als 00:00:04.126 en SMI schrijft hetzelfde moment als Start=4126; niets wordt afgerond of verschoven, en een blok dat 2,9 seconden in beeld stond, staat dat nog steeds.

Hoe komt een CSV-blok van twee regels in SMI terecht?

Als twee regels met een <br> ertussen, want zo schrijft SAMI een harde regelbreuk. Het paar blijft bij elkaar: de twee CSV-regels horen in de SMI-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.

Behouden CSV-blokken hun volgorde in de SMI-uitvoer?

Ja, en ze worden onderweg op starttijd gesorteerd: vroegste eerst, zoals elk formaat hier ze verwacht en zoals spelers ze lezen. Stond jouw CSV niet in volgorde, dan zet de SMI-uitvoer de blokken weer netjes achter elkaar. Dat verandert de structuur van het bestand, niet de inhoud, en het is bewust.

Kan ik de SMI terug naar CSV omzetten?

Ja, en dat is de verliesgevende richting: stijl, positie en formaatspecifieke inhoud hebben in CSV geen plek. Deze kant op gaat niets verloren, dus die prijs betaal je alleen als je teruggaat.

Blijft de tekencodering van het CSV-bestand behouden in de SMI-uitvoer?

Nee. De uitvoer is UTF-8 met Unix-regeleinden en zonder BOM, wat het CSV-bestand ook gebruikte. Een bestand in UTF-16 of in een Windows-codering met één byte wordt bij het inlezen gedecodeerd (het resultaatpaneel zegt het als dat gebeurt); wat eruit komt is altijd dezelfde UTF-8-SMI.

Gerelateerde hulpmiddelen