Przejdź do treści
SubtitleMatrix

Przesuń napisy o timecode

SynchronizacjaPrzesunięcie o stałą wartość
Albo wklej tekst napisów

Opcje

Zapisz wartość przesunięcia jako czas zegarowy: 00:00:02,500 to dwie i pół sekundy później, -00:00:02,500 to dwie i pół sekundy wcześniej. Łatwiej to odczytać z filmu odniesienia niż liczbę milisekund. Zostaw puste na stronach, które zamiast tego proszą o milisekundy.

W jakiej liczbie klatek na sekundę liczone są czasy. Na stronach formatów tego wymaga MicroDVD, bo zapisuje czasy jako numery klatek. Na stronach poświęconych liczbie klatek jest to stawka, według której zgrany był plik — wersja, dla której powstały napisy — a drugie pole na stronie przyjmuje liczbę klatek wideo, z którym napisy będą używane. Najczęstsze wartości to 23,976, 24, 25, 29,97, 30, 50, 59,94 i 60. Pomyłka przesuwa całą oś czasu, a na stronach poświęconych liczbie klatek przesuwa ją o współczynnik, a nie o stałą wartość.

Ta strona przesuwa plik napisów o timecode, a nie o liczbę milisekund. Wpisz 00:00:02,500 i każdy blok ruszy się o dwie i pół sekundy później; wpisz -00:00:01,000 i każdy ruszy się o sekundę wcześniej. Oba brzegi każdego bloku ruszają się o tę samą wartość, więc każdy zachowuje długość — różnica między tą stroną a stroną z milisekundami polega wyłącznie na sposobie zapisania offsetu.

Ta strona istnieje z powodu tego, skąd bierze się liczba. Gdy dopasowujesz napisy do wzorca — nowej czołówki, wstawionej reklamy, innej osi czasu, z której odczytujesz pozycję — masz w ręku parę momentów, a offset jest ich różnicą. Zapisanie tej różnicy jako timecode jest o krok krótsze niż przeliczanie jej w głowie na milisekundy, a właśnie w tym przeliczeniu rodzą się pomyłki: 00:01:30,000 to dziewięćdziesiąt tysięcy milisekund, nie dziewięć tysięcy.

Offset jest odczytywany jako wartość zegara i przykładany do osi czasu jako całości. Blok, który zostałby wypchnięty przed początek pliku, ma początek przypięty do 00:00:00, a jego koniec nadal się rusza, więc ten jeden blok wychodzi krótszy; blok, którego koniec wypadłby na zerze albo przed nim, jest odrzucany. Plik z offsetem równym zero albo z offsetem, którego nie da się odczytać, wraca co do bajtu.

SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON i CSV są czytane jako format, którym naprawdę są, a nie jako ten, na który wskazuje rozszerzenie. Zwykły tekst i LRC nie są przyjmowane, bo żaden nie zapisuje czasu końca i offset nie miałby czego ruszyć. Nic nie opuszcza Twojego komputera, a cały sezon przechodzi przez kolejkę za jednym razem.

Przykłady

Przesuń plik o dwie i pół sekundy później

Wejście

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

2
00:00:05,500 --> 00:00:08,000
Second line.

Wynik

1
00:00:03,500 --> 00:00:05,500
Hello there.

2
00:00:08,000 --> 00:00:10,500
Second line.

Dokładnie ten sam wynik, jaki dałoby podanie stronie z milisekundami offsetu 2500 — oba brzegi każdego bloku się ruszają i żaden blok nie zmienia długości.

Cofnij plik znakiem minus

Wejście

1
00:00:01,000 --> 00:00:02,000
The first one starts too early.

2
00:00:05,000 --> 00:00:08,000
This one is fine.

Wynik

1
00:00:00,000 --> 00:00:00,500
The first one starts too early.

2
00:00:03,500 --> 00:00:06,500
This one is fine.

Pierwszy blok zaczynałby się na −500 ms, więc jego początek jest przypięty do zera i tylko ten brzeg się zmienia, przez co blok ma 500 ms zamiast 1000.

Timecode w stylu WebVTT, z kropką

Wejście

1
00:00:01,000 --> 00:00:02,000
Dot instead of comma.

Wynik

1
00:00:03,500 --> 00:00:04,500
Dot instead of comma.

0:00:02.500 znaczy to samo co 00:00:02,500. Oba separatory i jednocyfrowa godzina są przyjmowane, bo timecode'y przychodzą z narzędzi, które nie zgadzają się co do żadnego z nich.

Częste pytania

Jak zapisać offset, który cofa napisy?

Wstaw znak minus przed timecode'em: -00:00:02,500 znaczy dwie i pół sekundy wcześniej. Bez znaku te same cyfry popychają plik później, więc znak jest całą różnicą między kierunkami i nie ma osobnego przełącznika.

Dlaczego tutaj jest pole timecode, a nie pole z milisekundami?

Bo offset zwykle powstaje z dwóch odczytów zegara, a nie z liczby, którą ktoś zmierzył. Gdy dopasowujesz plik do wzorca, masz parę momentów, a offset jest ich różnicą, czyli timecode'em. Strona z milisekundami nadal istnieje na wypadek, gdy liczbę już masz, i obie strony dają identyczny wynik dla tego samego offsetu.

Czy przed milisekundami można użyć kropki zamiast przecinka?

Tak, podobnie jak jednocyfrowej godziny. 00:00:02,500, 00:00:02.500 i 0:00:02.50 dają te same 2500 milisekund, bo formaty napisów nie zgadzają się co do separatora i nie ma powodu, żebyś tłumaczył go przed wpisaniem. Ułamek jest czytany według liczby zapisanych cyfr, więc .5 i .500 to obie pół sekundy.

Co się dzieje, gdy wpiszę coś, czego nie da się odczytać jako timecode?

Offset jest ignorowany, a plik wraca bez zmian. To ostrożna połowa zachowania — nic nie jest zgadywane i żadna dowolna liczba nie jest podstawiana — ale jest też cicha, więc tekst pomocy przy polu wylicza przyjmowane kształty, zamiast zostawiać Ci ich odkrywanie. Sama liczba, na przykład 2500, nie jest timecode'em i należy do strony z milisekundami.

Czy offset w timecode przesuwa oba brzegi bloku?

Tak. Każdy początek i każdy koniec rusza się o tę samą wartość, więc żaden blok nie zmienia długości ani położenia względem pozostałych. Jeśli chcesz zmienić, jak długo napisy zostają na ekranie, służą do tego strony przesuwające początek i koniec osobno.

Powiązane narzędzia