Naar de hoofdinhoud
SubtitleMatrix

SRT naar ASS

FormaatconversieSubRip (SRT)
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 herschrijft een SRT-bestand als een Advanced SubStation Alpha-script. De twee formaten verschillen van mening over wat een ondertitel is: SRT is een lijst blokken met tijdstempels, ASS is een script met een kop, een stijltabel en een reeks Dialogue-regels. Elk blok wordt dus één Dialogue-regel die naar één stijl wijst, en de tijden worden in ASS-notatie geschreven: 0:00:01.00 in plaats van 00:00:01,000, omdat ASS in honderdsten van een seconde telt en SRT in milliseconden.

Opmaak wordt vertaald, niet geplakt. Een stukje cursief in de bron wordt een ASS-overridecode die aan het begin van dat stuk aangaat en aan het eind weer uit, en hetzelfde geldt voor vet. Een regeleinde binnen een blok wordt de ASS-regeleindecode, zodat twee regels twee regels blijven binnen één event in plaats van twee blokken die toevallig naast elkaar staan. Wat SRT niet kan zeggen — een lettertype, een positie, een rand — wordt niet voor je verzonnen; je krijgt een schoon script met één bruikbare stijl, klaar om in elke ASS-editor opnieuw te stylen.

Eén bestand of een heel seizoen, geen beeldsnelheid om uit te rekenen (beide formaten bewaren kloktijd), en niets verlaat je machine.

Voorbeelden

Een typisch SRT-bestand, omgezet naar ASS

Invoer

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

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,,Hello there.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,{\i1}Whispering{\i0} now.\NAnd a second line.
Dialogue: 0,0:00:06.00,0:00:09.25,Default,,0,0,0,,{\b1}Bold{\b0} statement.

In deze uitvoer verloren: precisie. Al het andere komt regel voor regel overeen.

Dezelfde omzetting op een rommelige invoer

Invoer

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last 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,,{\b1}Bold{\b0} and {\i1}italic{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,
Dialogue: 0,0:00:08.00,0:00:09.00,Default,,0,0,0,,Last one.

Zo zien echte bestanden eruit — gemengde regeleinden, losse spaties, lege velden. Vergelijk met het nette voorbeeld hierboven om te zien wat de parser vergeeft.

Veelgestelde vragen

Waarom bevat de ASS-uitvoer een stijltabel die ik niet heb aangevraagd?

Omdat ASS geen ongestylede blok kent. Elke Dialogue-regel wijst naar een stijl, dus het script moet er minstens één declareren. De omzetter maakt één stijl met de naam Default — Arial, grootte 20, wit met een donkere rand — en laat elke regel daarnaar wijzen. Pas die ene rij in de kop aan en het hele bestand verandert mee.

Wat betekent het getal achter de komma in de ASS-tijdcode?

Honderdsten van een seconde. ASS bewaart tijd tot op de centiseconde, dus een begin op 00:00:01,250 in SRT wordt 0:00:01.25. Dat is de fijnste resolutie die het formaat heeft; fijner stond er in jouw bestand toch niet in.

Hoe komen cursief en vet uit mijn SRT-bestand in ASS terecht?

Als echte ASS-opmaak. Een stuk cursief wordt een cursieve overridecode om dat stuk heen, en vet wordt een vette override. Een ASS-editor toont ze als stijl in plaats van als achtergebleven markup — dat is het verschil tussen een script dat schoon opent en een dat vol losse tekens staat.

Blijft een harde regeleinde binnen één blok bewaard in ASS?

Ja, als de ASS-regeleindecode. Twee regels binnen één SRT-blok blijven twee regels binnen één Dialogue-event, dus de timing van de tweede regel is nog steeds de timing van het hele blok.

Blijft de timing van SRT naar ASS gelijk aan dezelfde video?

Ja. Niets verschuift of schaalt hier de tijd. Het eerste blok begint op hetzelfde moment en het laatste eindigt op hetzelfde moment; alleen wat de woorden omringt is veranderd.

Gerelateerde hulpmiddelen