Przyciągnij napisy do klatek
Albo wklej tekst napisów
Opcje
Każda granica bloku jest przesuwana do najbliższej klatki w tej liczbie klatek, więc przy 25 fps 00:00:02,010 staje się 00:00:02,000, a 00:00:02,030 staje się 00:00:02,040. Granica dokładnie w połowie między dwiema klatkami zaokrągla się w górę, więc 00:00:02,020 staje się 00:00:02,040. Nic nie jest skalowane: oś czasu zachowuje długość, a granice po prostu trafiają na klatki, więc długość każdego bloku może się zmienić o maksymalnie pół klatki w którąkolwiek stronę. To nie jest zadeklarowana liczba klatek pliku — decyduje wyłącznie o tym, gdzie granice wypadną w wyniku.
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 przenosi każdy brzeg bloku na najbliższą klatkę wybranej liczby klatek na sekundę. Nie zmienia niczyjego tempa: oś czasu zachowuje długość, kolejność bloków zostaje, a zmienia się tylko położenie każdego brzegu — 00:00:02,010 przy 25 klatkach na sekundę staje się 00:00:02,000, a 00:00:02,030 staje się 00:00:02,040. Długość każdego bloku może się więc zmienić o maksymalnie pół klatki w każdą stronę i ta wymiana jest celowa.
Ta strona odbiera decyzję odtwarzaczowi. Napisy są przechowywane w milisekundach, ale większość odtwarzaczy i narzędzi do wypalania pracuje w klatkach, więc brzeg wypadający między dwiema klatkami musi zaokrąglić ten, kto go rysuje — a różne programy robią to różnie. Jeden odtwarzacz pokaże linię o klatkę wcześniej, inny o klatkę później, i ten sam plik wygląda nieco inaczej na dwóch maszynach. Jednorazowe wyrównanie tutaj czyni tę decyzję Twoją i podejmuje ją raz: potem każdy brzeg jest granicą klatki i każde narzędzie czytające plik się z tym zgadza.
To nie jest konwersja liczby klatek. Zmiana napisów z 23,976 na 25 mnoży całą oś czasu przez proporcję, żeby bloki nadal pasowały do filmu, i to jest inna strona w innej grupie. Ta strona w ogóle nie patrzy na film: jeśli plik jest już poprawny i chcesz tylko, żeby brzegi leżały na klatkach, wyrównaj go; jeśli jest zły wobec filmu, najpierw musi zmienić się proporcja.
Dwa pola liczby klatek pojawiają się, bo odpowiadają na różne pytania. Jedno to liczba klatek, z jaką plik jest czytany, potrzebna formatom numerującym klatki, takim jak MicroDVD, żeby dały się w ogóle zrozumieć. Drugie to liczba klatek, do której wyrównujesz. W pliku, który deklaruje własną wartość, zwykle są to te same liczby, a pomylenie ich jest ciche — wynik nadal jest dokładny co do klatki, tylko na niewłaściwej siatce. Wszystko dzieje się w tej karcie przeglądarki, bez wysyłania, na SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON i CSV jednakowo.
Przykłady
Każdy brzeg trafia na klatkę
Wejście
1
00:00:02,020 --> 00:00:04,030
Hello there.
2
00:00:07,010 --> 00:00:09,040
Second line.
Wynik
1
00:00:02,040 --> 00:00:04,040
Hello there.
2
00:00:07,000 --> 00:00:09,040
Second line.
Przy 25 klatkach na sekundę brzegi należą do wielokrotności 40 ms. 02,020 leży dokładnie w połowie między dwiema i zaokrągla się w górę do 02,040; 04,030 idzie do 04,040; 07,010 wraca do 07,000. Nic nie zostało przeskalowane — drugi blok nadal ma około dwóch sekund, a przerwa między blokami jest niezmieniona co do klatki — ale długość każdego bloku trochę się ruszyła: 2010 ms i 2030 ms wyszły jako 2000 ms i 2040 ms.
Blok krótszy niż klatka
Wejście
1
00:00:04,000 --> 00:00:04,010
Squeezed.
2
00:00:06,010 --> 00:00:08,010
A normal one.
Wynik
2
00:00:06,000 --> 00:00:08,000
A normal one.
Dziesięciomilisekundowy blok ma oba brzegi zaokrąglane do klatki 100, więc po wyrównaniu miałby ten sam czas na obu końcach — a bloku kończącego się tam, gdzie się zaczyna, nie da się pokazać. Zostaje odrzucony i policzony, a nie rozciągnięty do jednej klatki, bo wymyślanie długości wstawiłoby na ekran napis, o który plik nie prosił. Przy 25 klatkach na sekundę potrzeba do tego bloku krótszego niż 20 ms; drugi blok jest dwadzieścia razy dłuższy i zachowuje się zwykle.
Niecałkowita liczba klatek nie zostawia długości w spokoju
Wejście
1
00:00:01,000 --> 00:00:03,000
Hello there.
Wynik
1
00:00:01,001 --> 00:00:03,003
Hello there.
23,976 klatki na sekundę to niecałkowita liczba milisekund na klatkę, więc żadna okrągła sekunda nie jest granicą klatki i oba brzegi się ruszają: blok trwający dokładnie 2000 ms wychodzi o długości 2002 ms. Każdy brzeg nadal leży na klatce, co strona obiecuje, ale okrągłe liczby, którymi pisano źródło, zniknęły. Warto to zobaczyć, zanim wyrównasz plik do 23,976 albo 29,97 i oczekujesz, że czasy wrócą bez zmian.
Częste pytania
Co daje wyrównanie do klatek, czego nie daje konwersja liczby klatek?
Konwersja zmienia długość osi czasu; wyrównanie zmienia tylko to, gdzie na niej leżą brzegi. Konwersja napisów z 24 na 25 klatek na sekundę mnoży każdy znacznik przez 0,96, żeby nadal pasowały do filmu, i dwusekundowy blok staje się 1,92. Wyrównanie zostawia te dwie sekundy jako dwie sekundy i przesuwa brzegi na najbliższą klatkę, zmieniając każdy o mniej niż pół klatki.
Czy wyrównanie sprawi, że napisy dopasują się do filmu odtwarzanego w innej liczbie klatek?
Nie. Ta strona nigdy nie patrzy na film i nie zmienia długości osi czasu, więc plik przesunięty dlatego, że film ma inną liczbę klatek, pozostanie tak samo przesunięty. Najpierw policz proporcję — do tego służą strony konwersji liczby klatek — a wyrównaj potem, jeśli narzędzie, do którego dostarczasz, wymaga brzegów na klatkach.
O ile może zmienić się długość bloku po wyrównaniu?
O maksymalnie pół klatki na każdym brzegu, czyli o najwyżej całą klatkę łącznie, nigdy więcej. Przy 25 klatkach na sekundę to najwyżej 40 ms na bloku, po 20 ms na brzeg. Przy 23,976 albo 29,97 nie ma całkowitej liczby milisekund na klatkę, więc nawet blok zaczynający się i kończący na okrągłych wartościach się ruszy: dwusekundowy blok staje się 2002 ms.
Uruchomiłem stronę dwa razy i drugie uruchomienie nic nie zmieniło. Czy tak ma być?
Tak, i właśnie to czyni stronę bezpieczną w partii. Gdy każdy brzeg leży na klatce, najbliższą klatką dla brzegu jest on sam, więc drugie uruchomienie zwraca plik co do bajtu. Jeśli sprawdzasz dostawę, oznacza to też, że plik zmieniający się przy drugim przebiegu nie został za pierwszym razem wyrównany w pełni — co nie powinno się zdarzyć, ale jest tanim testem.
Czy napis może zniknąć podczas wyrównywania?
Tylko jeśli jest krótszy niż pół klatki, bo wtedy oba jego brzegi zaokrąglają się do tej samej klatki i nie zostaje blok do zapisania. Przy 25 klatkach na sekundę chodzi o wszystko poniżej 20 ms, czego nie ma żaden prawdziwy napis; strona liczy to, co odrzuca, więc raport jest miejscem, w którym trzeba zajrzeć, a nie pobrany plik.
Czy powinienem wyrównywać do liczby klatek, którą deklaruje sam plik?
Niekoniecznie — deklaracja mówi, jak czytać numery klatek w pliku, a liczba klatek do wyrównania mówi, gdzie w wyniku mają trafić brzegi. W większości dostaw są to te same wartości. Różnią się, gdy przygotowujesz plik dla narzędzia pracującego w innym tempie, i wybranie tam zadeklarowanej wartości jest cichym błędem: wynik nadal jest dokładny co do klatki, tylko na siatce, o którą nikt nie prosił.