Hopp til hovedinnhold
SubtitleMatrix

ASS til LRC

FormatkonverteringAdvanced SubStation Alpha (ASS)
Eller lim inn underteksttekst

Hva denne konverteringen endrer

5 ting slippes eller trenger en avgjørelse

  • Tider

    tekstblokkenes sluttider (resultatformatet registrerer bare når en tekstblokk starter)

  • Formatering

    all formatering (fet, kursiv, farge, kontur, skygge)

  • Plassering

    plassering på skjermen (hver tekstblokk går tilbake til standardposisjonen)

  • Karaoke

    karaoketiming (utheving per stavelse)

  • Formatspesifikt innhold

    innhold som kildeformatet oppbevarer utenfor tekstblokkene (blokker utenom tekstblokkene, topptekst, innstillinger per tekstblokk, kommenterte hendelser) — målformatet har ingen plass til det

Denne listen kommer fra egenskapsmatrisen for disse to formatene, ikke fra den bestemte filen du lastet inn. En bestemt fil kan miste mer hvis den bruker egenskaper formatet tillater, men matrisen ikke modellerer.

Denne ASS-til-LRC-konverteringen tar en fil, eller tekst limt inn i boksen, og gir deg LRC-utdataen uten å sende noe videre.

Forskjellen mellom ASS og LRC er ikke kosmetisk: sluttidene forsvinner, fordi LRC bare lagrer når en linje starter — spilleren holder linjen oppe til neste linje begynner; all formatering forsvinner — fet, kursiv, farge, omriss og skygge; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner; LRC har ingen plass til innholdet ASS oppbevarer utenfor tekstblokkene.

Listen over filboksen er regnet ut fra hva ASS og LRC kan uttrykke, ikke fra filen din, så svaret er det samme før du laster opp noe.

Du kan kjøre én ASS-fil eller en hel sesong til LRC i samme kjøring: filene behandles én om gangen, kjøringen kan avbrytes underveis, og alt kommer ned som én ZIP.

Konverteringen fra ASS til LRC skjer i nettleseren din, så ingenting lastes opp.

Eksempler

En typisk ASS-fil konvertert til LRC

Inndata

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

Resultat

[ti:Example]
[00:01.00]Hello there.
[00:05.00]Italic and bold text.
[00:09.00]Positioned
[00:13.00]karaoke
[00:17.00]Line one
[00:17.00]Line two
[00:21.00]Top left

Dette går tapt i utdataen: sluttidene, formatering, plassering, karaoke og metadata. Starttidene beholdes med hundredels presisjon; sluttidene utledes fra neste linje.

Samme ASS-til-LRC-konvertering med vanskelig inndata

Inndata

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

Resultat

[ti:Dirty sample]
[00:01.00]Hello, world
[00:05.00]{\fad(300,300)}Unmodelled override
[00:09.00]Both, wrong order
[00:13.00]One decimal centisecond
[00:17.00]Soft
[00:17.00]break

Slik ser skader på ekte filer ut — blandede linjeskift, løse mellomrom, tomme felt. Sammenlign med det ryddelige eksempelet over for å se hva ASS-parseren tilgir.

Ofte stilte spørsmål

Hva går tapt når ASS blir LRC?

Dette: sluttidene forsvinner, fordi LRC bare lagrer når en linje starter — spilleren holder linjen oppe til neste linje begynner; all formatering forsvinner — fet, kursiv, farge, omriss og skygge; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner; LRC har ingen plass til innholdet ASS oppbevarer utenfor tekstblokkene. På kildesiden har ASS en full stiltabell, plassering, karaoke og hundredelers tider; på målsiden har LRC bare starttider med hundredels presisjon, og derfor kommer de nevnte tingene ikke med. Teksten og rekkefølgen kommer over.

Hvordan skrives tidsstemplene om fra ASS til LRC?

En tid i ASS ser slik ut: `0:00:04.13` — hundredeler. I LRC skrives den som `[00:04.12]` — hundredeler, og bare starttiden. LRC lagrer bare starttiden, så det finnes ingen sluttid i filen; spilleren holder linjen oppe til neste linje begynner. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.

Hvordan får en tekstblokk fra ASS en sluttid i LRC?

LRC har ingen sluttid: en spiller holder linjen oppe til neste linje begynner. Derfor skrives ASS-tekstblokken som en starttid med hundredels presisjon, og sluttiden kastes — den er en opplysning ASS har som LRC ikke kan lagre.

Hva skjer med formateringen fra ASS i LRC?

Stiltabellen og de innebygde taggene i ASS forsvinner: LRC har ingen stiltabell og skriver rå tekst, så fet, kursiv og farge blir bare vanlige tegn.

Hvordan ser en LRC-fil ut når den er laget fra ASS?

LRC har metadata-tagger som `[ti:]` og `[ar:]`, deretter én tidsstemplet linje per sanglinje. Konverteringen fra ASS fyller den formen: hver tekstblokk blir én LRC-blokk, i samme rekkefølge, med ASS-ens tekst delt i de samme linjene.

Kan jeg konvertere LRC tilbake til ASS, og hva går tapt da?

Ja, og den veien har sin egen tap-liste: sluttidene blir genererte, fordi LRC ikke lagrer dem — de utledes fra neste linjes starttid. Det er ikke den samme listen som ASS → LRC, fordi de to formatene beholder ulike ting.

Beholder LRC plasseringen som ASS beskriver?

Nei. ASS kan plassere en tekstblokk på skjermen, men LRC har ingen posisjonsmodell, så hver tekstblokk faller tilbake til spillerens standardplass; posisjonen står i tap-listen.

Hva gjør LRC med en tekstblokk fra ASS som har flere linjer?

Den beholder linjene. ASS og LRC uttrykker begge flere linjer per tekstblokk, og konverteringen skriver linjeskiftet som flere tidsstemplede linjer med samme starttid i stedet for å slå sammen teksten.

Forsvinner karaoketimingen i ASS når jeg konverterer til LRC?

Ja. ASS kan lagre per stavelse når en linje skal lyse opp, men LRC har ingen slik instruksjon; ordene blir stående, men timingen per stavelse er borte.

Hva skjer med kommentarer og metadata i ASS når filen blir LRC?

ASS kan ha `[Script Info]` med globale innstillinger, innbakte skrifter i `[Fonts]`, grafikk i `[Graphics]` og `Comment:`-hendelser utenfor tekstblokkene. LRC har metadata-taggene i hodet: tittel, artist, lengde og offset; derfor registreres dette som tap, og det er tekstblokkene som kommer med videre.

Relaterte verktøy