Konwerter napisów LRC na SRT
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.
LRC zapisuje sam początek wiersza — znacznik w nawiasach kwadratowych i tekst. SRT wymaga dwóch czasów przy każdym bloku, więc brakujący koniec powstaje z początku następnego wiersza. To ta sama reguła, którą stosuje odtwarzacz tekstu piosenek, przesuwając podświetlenie na kolejny wers.
Dwa przypadki wymagają osobnego potraktowania. Kilka wierszy może dzielić jeden znacznik — na przykład oryginał i tłumaczenie — i wtedy zostają jednym blokiem z dwiema liniami, a nie dwoma blokami startującymi w tej samej chwili. Ostatni wiersz nie ma następnika, więc dostaje długość ustawioną nad polem pliku; raport mówi, że ten koniec został wygenerowany.
Nagłówek LRC jest odczytywany, ale SRT nie ma pól metadanych, więc tytuł i wykonawca trafiają do raportu jako strata. Znacznik przesunięcia zostaje zachowany bez zastosowania, dzięki czemu wynik mówi dokładnie to, co plik. Wszystko dzieje się w przeglądarce.
Przykłady
Typowy plik LRC po konwersji na SRT
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
1
00:00:12,000 --> 00:00:15,300
First line of the song.
2
00:00:15,300 --> 00:00:18,000
Second line.
Second line, translated.
3
00:00:18,000 --> 00:00:21,500
4
00:00:21,500 --> 00:00:23,500
Final line.
W tym wyniku ginie timing. Poza tym tekst zgadza się wiersz po wierszu.
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
1
00:00:03,000 --> 00:00:05,500
Out of order.
2
00:00:05,500 --> 00:00:07,000
Leading zero omitted, one decimal.
3
00:00:07,000 --> 00:00:09,000
Second with no centiseconds.
Repeated chorus line.
4
00:00:09,000 --> 00:00:12,000
Repeated chorus line.
5
00:00:12,000 --> 00:00:14,000
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 wiersz LRC bierze czas zakończenia w SRT?
Z początku następnego wiersza. LRC nie zapisuje końca, więc parser przyjmuje moment, w którym zaczyna się kolejny wers — dokładnie tak postępuje odtwarzacz przesuwający podświetlenie. Dzięki temu wszystkie końce poza ostatnim są wyliczone z danych pliku, a nie wymyślone.
Co dzieje się z ostatnim wierszem LRC przy konwersji na SRT?
Ostatni wiersz nie ma następnika, od którego mógłby pożyczyć koniec. Dostaje więc długość z pola pod obszarem pliku — domyślnie dwie sekundy — a raport odnotowuje wygenerowany koniec, bo plik źródłowy nic o nim nie mówił.
Dlaczego dwa znaczniki LRC trafiają do jednego bloku SRT?
Bo dzielą ten sam czas rozpoczęcia. W LRC tak zapisuje się tłumaczenie albo drugi głos pod tym samym wersem: oba wiersze mają się pokazać razem. SRT dostaje jeden blok z dwiema liniami, a nie dwa bloki startujące w tej samej chwili, których żaden odtwarzacz nie pokaże sensownie.
Czy przesunięcie z nagłówka LRC jest stosowane w SRT?
Nie, jest tylko czytane i zachowywane. Czasy w SRT odpowiadają więc tym zapisanym w pliku. Jeśli odtwarzacz pokazywał tekst wcześniej lub później właśnie przez `[offset:…]`, zastosuj tę samą korektę na stronie przesunięcia — wtedy wynik zgodzi się z tym, co widziałeś.
Co dzieje się z tytułem i wykonawcą z LRC w pliku SRT?
SRT nie przechowuje metadanych: nie ma gdzie zapisać tytułu ani wykonawcy. Oba pola są odczytywane i zgłaszane jako strata, a nie doklejane do pierwszej linii tekstu. Zostaje czysty tekst i czasy, czyli dokładnie to, czym SRT jest.