CSV naar ASS
Of plak ondertiteltekst
Wat deze conversie verandert
1 ding vervalt of vraagt om een beslissing
- Nauwkeurigheid
tijdprecisie — de klok van de uitvoer is grover, dus elke tijdstempel wordt afgerond op de dichtstbijzijnde 10 ms
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 ASS. Je sleept een bestand naar het vak of plakt de tekst erin, en je krijgt de ASS-versie terug. De conversie draait volledig in je browser: er wordt niets geüpload en je hebt geen account nodig.
Deze twee formaten bewaren niet hetzelfde, en het verschil is niet cosmetisch: de fijnere tijdsaanduiding heeft in ASS geen plek. De lijst hierboven komt uit wat beide formaten kunnen uitdrukken, niet uit jouw bestand, dus het antwoord is hetzelfde vóór je iets laadt.
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 ASS
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
[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.
In deze uitvoer gaat de fijnere tijdsaanduiding 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
[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: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.
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
Waarom zijn de tijdstempels van CSV naar ASS verschoven?
ASS bewaart tijd als 0:00:04.13 waar CSV 00:00:04.126 schrijft — een honderdste tegen een duizendste van een seconde — dus elke tijdcode wordt op de dichtstbijzijnde 10 ms afgerond: uit 00:00:04,126 wordt 4,13 seconden. Niets wordt uitgerekt of herordend en geen blok verschuift meer dan 5 ms, maar als je deze ondertitels tegen een ander bestand uitlijnt, is dit de enige plek waar de conversie niet meer exact is.
Hoe ziet de uitvoer eruit als CSV ASS wordt?
Als ASS: zonder bloknummers. Elk ondertitelblok is een Dialogue:-regel in de sectie [Events], met een layer-veld waar SRT het volgnummer bewaart. Elk CSV-blok wordt één ASS-blok, in dezelfde volgorde en met dezelfde tekst.
Hoe komt een CSV-blok van twee regels in ASS terecht?
Als twee regels met \N ertussen, want zo schrijft ASS een harde regelbreuk. Het paar blijft bij elkaar: de twee CSV-regels horen in de ASS-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.
Behouden CSV-blokken hun volgorde in de ASS-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 ASS-uitvoer de blokken weer netjes achter elkaar. Dat verandert de structuur van het bestand, niet de inhoud, en het is bewust.
Kan ik de ASS terug naar CSV omzetten?
Ja, en die richting heeft een eigen lijst: ASS naar CSV verliest stijl, positie, karaoke en formaatspecifieke inhoud. Die lijst verschilt van de lijst hierboven, omdat beide formaten andere dingen bewaren.
Blijft de tekencodering van het CSV-bestand behouden in de ASS-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-ASS.