Hopp til hovedinnhold
SubtitleMatrix

Fjern ASS-overstyringstagger

Tekst og stilFjern markup og tagger
Eller lim inn underteksttekst

Innstillinger

Én boks, sju valg, og hvert valg har sin egen side. Kursiv, fet, understreking og farge fjerner den ene typen område og lar resten av linjens formatering være. Alle fjerner hvert område verktøyet modellerer — de fire pluss karaoketiming — mens alt annet i teksten blir stående urørt. HTML gjør det samme og feier deretter ut vinkelparentesmarkupen som ble stående i teksten fordi verktøyet ikke modellerer den, som VTTs <v Bob>-talertagger og <c.className>. ASS gjør det samme for overstyringsblokker i stedet, og fjerner {...}-kodene som ikke ble gjenkjent ved lesing, som {\fad(500,500)}. Denne siden fyller boksen med valget tittelen navngir og lister ingen andre.

Hvilken bildefrekvens tidene telles i. På formatsidene er det dette MicroDVD trenger, fordi det lagrer tid som bildenummer. På sidene for bildefrekvens er det frekvensen filen ble tidsstyrt mot — versjonen undertekstene ble laget for — og sidens andre boks tar frekvensen til videoen du skal bruke dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 og 60 er de vanlige. Tar du feil, forskyves hele tidslinjen, og på bildefrekvenssidene forskyves den med et forhold i stedet for et fast beløp.

Denne siden rydder overstyringskodene ut av en ASS- eller SSA-fil: stilområdene, karaoketimingen, de gjenværende effektblokkene og plasseringen. Det som kommer tilbake, er ren tekst med tider — ordene, tekstblokktidene og filens egen struktur, med linjene der den navngitte stilen plasserer dem.

ASS er formatet som kan si mest, og det meste av det det kan si, er skrevet som overstyringskoder inne i teksten på en linje. Noen av kodene er stil som verktøyet modellerer — `{\i1}`, `{\b1}`, `{\c&H...&}`, `{\k50}` — og noen er effekter det ikke gjør: falminger, forflytninger, skalering, uskarphet, alle skrevet som blokker i samme form. De umodellerte blokkene blir stående i teksten mens en fil leses, med vilje, fordi å spise markup verktøyet ikke kan lese, ville være å miste data. Dette er siden som feier dem ut.

Plasseringen ryddes også her, og det er den ene tingen denne siden gjør som ikke bare er å fjerne markup: hvor en linje sitter, er en egenskap ved hele hendelsen og ikke et område over teksten, så en plassert linje går tilbake dit den navngitte stilen setter den. Det er det som gjør utdataene virkelig rene. Selve stilarket røres ikke — en tekstblokk med fet stil ser fortsatt fet ut, fordi fetheten tilhører stilen og ikke teksten.

Én kode blir stående, og siden sier det i stedet for å la deg finne det: en nislags justering som `{\an8}` bevares som skrevet. Den koder vertikal plassering så vel som horisontal, og verktøyets eget begrep om justering dekker bare venstre, midten og høyre, så det finnes ingen steder å beholde den andre halvdelen. Å forstå den halvveis ville gitt en fil som går feil gjennom en runde. Ingenting lastes opp; en fil uten noe å fjerne, kommer tilbake byte for byte.

Eksempler

Stil og en gjenværende effektblokk

Inndata

[Script Info]
Title: fade

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\fad(500,500)}{\i1}hello{\i0}

Resultat

[Script Info]
Title: fade

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,hello

`{\fad(500,500)}` ber avspilleren tone linjen inn og ut over et halvt sekund hver vei. Verktøyet modellerte den aldri, så den ble stående i teksten til denne kjøringen feide den ut — og kursivparet ved siden av går samme vei og lar selve linjen stå. Ingenting i utdataene forteller at falmingen noen gang var der.

En plassert linje

Inndata

[Script Info]
Title: position

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\pos(100,200)}hello there

Resultat

[Script Info]
Title: position

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,hello there

Linjen får ikke lenger beskjed om hvor den skal sitte, så den faller tilbake til der stilen som er navngitt på hendelsen, plasserer den. Dette er den ene delen av kjøringen som ikke bare er å fjerne markup, og det er grunnen til at siden er den rette for en fil som må bli ren og ikke bare uthevingsfri.

En nislags justering som blir stående

Inndata

[Script Info]
Title: alignment

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\an8}hello there

Resultat

[Script Info]
Title: alignment

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,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:02.00,Default,,0,0,0,,{\an8}hello there

Denne kommer tilbake uendret, og det er ikke en glipp. `{\an8}` sier topp og midten samtidig, mens verktøyets justering bare dekker venstre, midten og høyre — så den vertikale halvdelen har ingen steder å bo, og taggen bevares hel i stedet for halvveis forstått. Plasseringskoden ryddes, denne gjør det ikke.

Ofte stilte spørsmål

Hvorfor overlever en nislags justeringstag denne siden?

Fordi verktøyet ikke kan gjengi den nøyaktig. En justering som `{\an8}` navngir én av ni celler, som koder en horisontal og en vertikal posisjon samtidig, mens verktøyets egen justering bare har venstre, midten og høyre. Å lagre den horisontale halvdelen og droppe den andre ville gjort at filen gikk feil gjennom en runde, så taggen bevares ordrett. Plasseringskoden ryddes, justeringskoden gjør det ikke, og siden sier det i stedet for å la deg oppdage det.

Hva er en overstyringsblokk, og hvorfor ligger den i teksten?

Det er et sett instruksjoner skrevet inne i teksten på en linje, mellom klammer, som ber avspilleren gjøre noe med linjen: endre stilen, animere den, tone den, flytte den. Verktøyet modellerer den vanlige stilundergruppen og leser dem inn i sin egen struktur, men det lar resten ligge nøyaktig der det fant det — falminger, forflytninger, uskarphet og lignende beholdes ordrett i stedet for å kastes, fordi å kaste markup leseren ikke forstår, ville være å miste data stille. Denne siden er der de endelig går.

Endrer ryddingen av overstyringskodene tidene eller teksten?

Nei. Ordene kommer tilbake byte for byte, hver tekstblokk beholder start og slutt til millisekundet, og rekkefølgen er filens egen. Linjeskift inne i en tekstblokk er en del av tekstblokken og ikke av stilen, så de blir der filen satte dem. Det som endres, er instruksjonene rundt ordene, og i noen tilfeller hvor linjen sitter på skjermen.

Vil utdataene fortsatt spilles riktig når kodene er borte?

Ja, og mer forutsigbart enn før. En overstyringskode en avspiller ikke forstår, ignoreres i beste fall og feilleses i verste fall, og ulike avspillere er uenige om effektkodene spesielt. Ren tekst med tider har ingen slik tvetydighet. Hvis filen var avhengig av plasseringen for å legge en tekst over noe bestemt i bildet, er den plasseringen borte, og linjen vil sitte der stilen setter den.

Fjerner dette de navngitte stilene fra stilarket også?

Nei — stilarket og stilen hver tekstblokk peker på, står nøyaktig som de var. Siden arbeider på kodene som er skrevet inne i teksten på en linje, og en tekstblokk med en fet navngitt stil ser fortsatt fet ut etterpå, fordi fetheten kommer fra stilen og ikke fra linjens egen tekst. Å rydde ut et stilark er en egen jobb, og det finnes ingen side for den ennå.

Kan jeg bruke denne siden på en SRT-fil, eller bare på ASS og SSA?

Du kan slippe inn hvilket som helst av formatene nettstedet leser. På en SRT- eller WebVTT-fil gjør den første halvdelen fortsatt jobben sin — stilområdene går — og feiingen finner rett og slett ingenting, siden klammeblokker ikke forekommer i de formatene. En fil som verken har stil eller klammeblokker, kommer tilbake byte for byte, som er det ærlige resultatet av en kjøring uten noe å gjøre.

Relaterte verktøy