Napraw 23,976 fps do 29,97 fps
Albo wklej tekst napisów
Opcje
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ść.
Liczba klatek wersji, z którą napisy będą używane — wideo, które naprawdę odtworzysz. Zastosowany współczynnik to pierwsze pole podzielone przez to, więc 24 na 25 daje 0,96: film w PAL jest o 4% szybszy, a 100-minutowy obraz mieści się na 96-minutowej taśmie. Zamiana pól miejscami przesuwa całą oś czasu w złym kierunku o tę samą wartość.
Ta strona bierze plik napisów, którego oś czasu policzono w 23,976 klatkach na sekundę, i kładzie go na osi 29,97. Każdy znacznik jest mnożony przez 0,8 — cztery piąte, dokładnie — więc plik wychodzi o jedną piątą krótszy: blok na pierwszej minucie staje się blokiem na czterdziestej ósmej sekundzie, a dwudziestoczterominutowy odcinek, którego napisy twierdzą, że trwa trzydzieści minut, wraca do dwudziestu czterech. Oba pola są już wypełnione; zmień je, jeśli Twój plik policzono w czymś innym.
Błąd leży w arytmetyce zamieniającej numery klatek na sekundy. Jeśli narzędzie czytało numery klatek należące do osi 29,97, ale dzieliło je przez 23,976, to każda wyprodukowana sekunda jest o ćwierć za duża: 29,97 podzielone przez 23,976 to 1,25, więc cała oś czasu jest rozciągnięta o ćwierć, a napisy biegną 25 procent za późno, coraz dalej za obrazem w miarę trwania filmu. Pomnożenie przez 0,8 to ten sam błąd podzielony z powrotem.
Jednej rzeczy ta strona nie może służyć i to najłatwiejsza pomyłka w całej grupie. Film niesiony w sygnale NTSC ma zastosowany pulldown 3:2 — te same obrazy są powtarzane, żeby wypełnić sygnał 29,97 — a pulldown zostawia czas trwania dokładnie takim, jaki był. Więc „moje wideo ma 29,97 i pulldown” nie jest powodem, żeby cokolwiek przeliczać: plik ustawiony do tego wideo jest już poprawny, a pomnożenie go przez 0,8 zabrałoby mu piątą część. Ta strona jest dla pliku, którego numery klatek policzono w złej liczbie klatek, a nie dla pliku, który po prostu leży w kontenerze 29,97.
To, co czyni tę parę przyjemną w pracy, to dokładność 0,8. Obie liczby w niej należą do rodziny NTSC i obie niosą to samo dzielenie przez 1001, więc 1001 się skraca i 23,976 przez 29,97 to po prostu 24000 przez 30000 — cztery piąte, bez zaokrągleń i bez reszty. Każdy blok dostaje o piątą mniej czasu na ekranie, co podnosi prędkość czytania każdej linii o 25 procent. Nic nie jest wysyłane, a cały sezon przechodzi przez kolejkę w jednym przebiegu — pliki SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON i CSV są czytane jako to, czym naprawdę są, a nie jako to, na co wskazuje rozszerzenie.
Przykłady
Krótki blok i długi
Wejście
1
00:00:01,000 --> 00:00:03,000
Hello there.
2
00:01:00,000 --> 00:01:02,000
One minute in.
Wynik
1
00:00:00,800 --> 00:00:02,400
Hello there.
2
00:00:48,000 --> 00:00:49,600
One minute in.
0,8 to 23,976 podzielone przez 29,97. Blok na pierwszej sekundzie traci 200 ms, a ten na minucie 12 000 ms — sześćdziesiąt razy większa odległość od zera, sześćdziesiąt razy większy ruch. Oba brzegi każdego bloku są mnożone, więc dwusekundowa linia dostaje 1,6 sekundy, i z tego skrócenia bierze się wzrost prędkości czytania.
Spóźnienie rośnie razem z zegarem
Wejście
1
00:10:00,000 --> 00:10:02,000
Ten minutes in.
2
00:30:00,000 --> 00:30:02,000
Half an hour in.
Wynik
1
00:08:00,000 --> 00:08:01,600
Ten minutes in.
2
00:24:00,000 --> 00:24:01,600
Half an hour in.
Dwie minuty później na dziesiątej minucie i sześć minut później na pół godziny — w obu przypadkach ćwierć upłynionego czasu, tak wygląda problem proporcji. Stały offset nigdy tego nie naprawi, a proporcja tak. Kontrola po przeliczeniu wypada na końcu pliku: otwórz go na nowym znaczniku ostatniego bloku i linia powinna tam być.
Plik MicroDVD zmienia tylko linię deklaracji
Wejście
{1}{1}23.976
{240}{288}Hello
Wynik
{1}{1}29.97
{240}{288}Hello
MicroDVD przechowuje czas jako numery klatek, a złe nie były klatki — zła była liczba, przez którą je dzielono. Klatka 240 zadeklarowana przy 23.976 czyta się jako dziesięć sekund, i to jest zgłaszane spóźnienie; zadeklarowana przy 29.97 czyta się jako osiem, i tam ten blok należy. Zmienia się więc pierwsza linia pliku i nie rusza się ani jeden numer klatki: przepisanie ich przyłożyłoby 25 procent dwa razy.
Częste pytania
Dlaczego współczynnik dla 23,976 na 29,97 wynosi dokładnie 0,8?
Bo obie liczby klatek są liczbami NTSC i obie to okrągła liczba podzielona przez 1001: 23,976 to 24000/1001, a 29,97 to 30000/1001. Dzielenie jednej przez drugą skraca 1001 po obu stronach i zostawia 24000 przez 30000, czyli cztery piąte. Nic tu nie jest zaokrąglane ani przybliżane — blok na minucie ląduje dokładnie na czterdziestej ósmej sekundzie.
Czy to naprawia film, do którego zastosowano pulldown 3:2?
Nie, i to jest pułapka, którą ta strona nazywa. Pulldown wypełnia sygnał 29,97 powtórzonymi klatkami i zostawia czas trwania dokładnie takim, jaki był, więc plik napisów ustawiony do takiego wideo jest już poprawny — przeliczenie zabiera osi czasu piątą część i psuje plik dobry. Strona jest dla czasów zbudowanych przez dzielenie numerów klatek przez 23,976, gdy klatki należały do osi 29,97.
Moje napisy są o ćwierć za późno i coraz późniejsze — czy to ta para?
Sprawdź, czy spóźnienie to ćwierć upłynionego czasu. Dwie minuty później na dziesiątej minucie, sześć na pół godziny i pół godziny w dwugodzinnym filmie to dokładnie ta para. Kuzynów w tej grupie łatwo odróżnić po rozmiarze: 0,95904 to błąd 4 procent, 1,0427094 to 4,271 procent, a współczynnik dwa podwaja długość pliku.
Czy mogę wpisać 24 i 30 w pola zamiast 23,976 i 29,97?
Dla tej pary tak, i wynik jest identyczny — 24 podzielone przez 30 to cztery piąte, tak samo jak 23,976 przez 29,97, bo wspólne dzielenie przez 1001 skraca się w obu przypadkach. To właściwość tej pary, a nie całej grupy: na stronie film na PAL użycie 24 i 25 tam, gdzie plik naprawdę był 23,976, zostawia błąd 3,5 sekundy na godzinę.
Każdy blok dostaje o piątą mniej czasu — czy to łamie limity prędkości czytania?
Warto to sprawdzić, bo słowa nie stają się krótsze dla równowagi: linia wygodnie mieszcząca się w limicie znaków na sekundę może go przekroczyć po wzroście o 25 procent. Narzędzia dostępności na tej stronie mierzą prędkość czytania wobec progów ustawionych przez standardy, i to jest liczba, na którą trzeba patrzeć, a nie wrażenie, że napisy wydają się teraz pędzić.
Czy powinienem użyć tej pary, żeby położyć napisy filmowe na płycie NTSC?
Nie. Film na płycie NTSC jest zapisany w 23,976, a odtwarzacz stosuje pulldown przy odtwarzaniu, więc plik ustawiony do filmu nie potrzebuje żadnej zmiany, a 0,8 by go zniszczyło. Jeśli Twój plik był ustawiony do kopii PAL tego filmu i wracasz do płyty, para to 25 na 23,976, a współczynnik 1,0427094 — mała korekta w drugą stronę.