Przejdź do treści
SubtitleMatrix

Konwerter napisów LRC na SSA

Konwersja formatówTekst piosenki (LRC)
Albo wklej tekst napisów

Opcje

Używane, gdy źródło nie ma czasów końca (zwykły tekst, LRC). Oś czasu w wyniku jest tu generowana, a nie konwertowana, więc dostajesz dokładnie tę liczbę.

Co zmienia ta konwersja

1 rzecz zostaje pominięta albo wymaga decyzji

  • Czasy

    czasy końca bloków — źródło ich nie zapisuje, więc czasy w wyniku zostaną wygenerowane, a nie skonwertowane

Ta lista pochodzi z macierzy możliwości tych dwóch formatów, a nie z konkretnego wczytanego pliku. Konkretny plik może stracić więcej, jeśli używa cech, które format dopuszcza, ale macierz ich nie modeluje.

SSA i LRC opisują napisy inaczej: SSA ma zdarzenia `Dialogue` z czasem początku i końca, a LRC tylko znacznik rozpoczęcia i tekst. Konwersja uzupełnia więc koniec z początku następnego wiersza, a ostatniemu wierszowi nadaje długość z pola pod obszarem pliku.

Wspólny znacznik w LRC oznacza wiersze, które mają się pojawić razem. W SSA stają się jednym zdarzeniem, a obie linie rozdziela `N` — twarde złamanie wiersza tego formatu. Dzięki temu tłumaczenie nie rozpada się na dwa niezależne napisy.

Tytuł z nagłówka trafia do `[Script Info]`, wykonawca jest zgłaszany jako strata, a `[offset:…]` pozostaje odczytany bez zastosowania. Plik wynikowy ma sekcję `[V4 Styles]` i pole `Marked` w miejscu, w którym SRT trzyma numer bloku. Całość działa lokalnie.

Przykłady

Typowy plik LRC po konwersji na SSA

Wejście

[ti:Sample Song]
[ar:Some Artist]
[length:00:41.00]
[offset:+250]
[00:12.00]First line of the song.
[00:15.30]Second line.
[00:15.30]Second line, translated.
[00:18.00]
[00:21.50]Final line.

Wynik

[Script Info]
Title: Sample Song
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:12.00,0:00:15.30,Default,,0,0,0,,First line of the song.
Dialogue: 0,0:00:15.30,0:00:18.00,Default,,0,0,0,,Second line.\NSecond line, translated.
Dialogue: 0,0:00:18.00,0:00:21.50,Default,,0,0,0,,
Dialogue: 0,0:00:21.50,0:00:23.50,Default,,0,0,0,,Final line.

W tym wyniku ginie timing: SSA dostał końce wyliczone z następnych wierszy LRC.

Ta sama konwersja na nierównym pliku wejściowym

Wejście

[ar:Some Artist]
[0:05.5]Leading zero omitted, one decimal.
[00:07]Second with no centiseconds.
[00:03.00]Out of order.
[00:07.00][00:09.00]Repeated chorus line.
[00:12.00]

Wynik

[Script Info]
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:03.00,0:00:05.50,Default,,0,0,0,,Out of order.
Dialogue: 0,0:00:05.50,0:00:07.00,Default,,0,0,0,,Leading zero omitted, one decimal.
Dialogue: 0,0:00:07.00,0:00:09.00,Default,,0,0,0,,Second with no centiseconds.\NRepeated chorus line.
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Repeated chorus line.
Dialogue: 0,0:00:12.00,0:00:14.00,Default,,0,0,0,,

Takie uszkodzenia ma wiele prawdziwych plików: mieszane końce wierszy, zbłąkane spacje, puste pola. Porównaj to z czystym przykładem powyżej, żeby zobaczyć, co parser wybacza.

Częste pytania

Skąd SSA bierze koniec wiersza LRC?

Z początku kolejnego wiersza, ponieważ LRC nie przechowuje końców. Każde zdarzenie `Dialogue` w SSA musi mieć parę czasów, więc parser wylicza ją z sąsiedztwa. Ostatni wiersz nie ma następcy i otrzymuje długość ustawioną na stronie, co raport pokazuje jako wartość wygenerowaną.

Jak wygląda SSA powstałe z pliku LRC?

Plik ma nagłówek `[Script Info]`, sekcję `[V4 Styles]` ze stylem `Default` i sekcję `[Events]`. Każdy wiersz źródłowy to jedna linia `Dialogue` z polem `Marked`, którego SRT nie ma. Liczba zdarzeń odpowiada liczbie bloków LRC, a nie liczbie pojedynczych linii tekstu.

Jak dwuwierszowy blok LRC wychodzi w SSA?

Jako dwie linie w jednym zdarzeniu `Dialogue`, rozdzielone `N`. SSA używa tego samego twardego złamania wiersza co ASS, więc para oryginał–tłumaczenie zachowuje przynależność do jednego napisu. Odtwarzacz pokaże obie linie naraz.

Czy kolejność bloków LRC zostaje zachowana w SSA?

Tak, po uporządkowaniu rosnąco według czasu startu. SSA czyta zdarzenia w kolejności zapisu, a odtwarzacze oczekują porządku chronologicznego. Jeśli LRC miał wiersze pomieszane, wynik je posortuje — zmienia się układ pliku, ale nie treść ani wartości czasów.

Co ginie przy powrocie z SSA do LRC?

Timing, style, pozycjonowanie, karaoke i konstrukcje specyficzne dla SSA. LRC nie ma sekcji stylów ani pól pozycji, a przede wszystkim nie zapisuje końców. Po powrocie zostają same początki i tekst, więc wygląd oraz długość wyświetlania trzeba by odtworzyć od nowa.

Jakie kodowanie ma SSA powstałe z LRC?

Wyjście to UTF-8 z końcami wierszy LF i bez BOM, niezależnie od kodowania pliku LRC. Jeśli wejście było w UTF-16 lub w kodowaniu jednobajtowym Windows, zostanie zdekodowane, a panel wyniku to zaznaczy. Format wyjściowy jest za każdym razem identyczny.

Powiązane narzędzia