Przejdź do treści
SubtitleMatrix

Napraw 29,97 fps do 23,976 fps

SynchronizacjaKonwersja liczby klatek
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 29,97 klatkach na sekundę, i kładzie go na osi 23,976. Każdy znacznik jest mnożony przez 1,25 — pięć czwartych, dokładnie — więc plik wychodzi o ćwierć dłuższy: blok na czterdziestej ósmej sekundzie staje się blokiem na pierwszej minucie, a blok, który twierdzi, że jest na dwudziestej czwartej minucie dwudziestoczterominutowego odcinka, wraca na trzydziestą. Oba pola są już wypełnione; zmień je, jeśli Twój plik policzono w czymś innym.

Błąd to ta sama arytmetyka co w jej lustrzanym odbiciu, widziana z drugiego końca. Numery klatek podzielone przez 29,97, gdy należały do osi 23,976, wychodzą o ćwierć za małe, bo 23,976 podzielone przez 29,97 to 0,8 — więc cała oś czasu jest ściśnięta do czterech piątych długości i każdy napis pojawia się o 20 procent za wcześnie, coraz wcześniej w miarę trwania filmu. Pomnożenie przez 1,25 to ten sam błąd podzielony z powrotem.

Rozpoznanie, w którą stronę jesteś, to cała robota, a objaw mówi sam. Napisy biegnące za późno i coraz późniejsze, z dwudziestoczterominutowym odcinkiem, którego ostatni blok twierdzi, że jest na trzydziestej minucie, wymagają 0,8. Napisy pojawiające się za wcześnie i coraz wcześniejsze, z dwudziestoczterominutowym odcinkiem, którego ostatni blok twierdzi, że jest na dwudziestej czwartej, a odcinek trwa trzydzieści minut, wymagają tej strony. Oba pliki powstały z tych samych źle podzielonych numerów klatek; różni się tylko kierunek pomyłki.

1,25 jest dokładne z tego samego powodu co jej odbicie: 29,97 to 30000/1001, a 23,976 to 24000/1001, więc wspólne dzielenie przez 1001 się skraca i 29,97 przez 23,976 to po prostu 30000 przez 24000 — pięć czwartych, bez zaokrągleń i bez reszty. Każdy blok dostaje o ćwierć więcej czasu na ekranie, więc prędkość czytania każdej linii spada o 20 procent, co jest jednym z dwóch kierunków w tej grupie, które łagodzą presję, zamiast ją zwiększać. Nic nie jest wysyłane i 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

Ćwierć w całej okazałości

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:01,250 --> 00:00:03,750
Hello there.

2
00:01:15,000 --> 00:01:17,500
One minute in.

1,25 to 29,97 podzielone przez 23,976. Blok na pierwszej sekundzie zyskuje 250 ms, a ten na minucie 15 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 2,5 sekundy, i z tego dodatkowego miejsca bierze się poprawa prędkości czytania.

Za wcześnie o ćwierć upłynionego czasu

Wejście

1
00:08:00,000 --> 00:08:02,000
Eight minutes in.

2
00:24:00,000 --> 00:24:02,000
Twenty-four minutes in.

Wynik

1
00:10:00,000 --> 00:10:02,500
Eight minutes in.

2
00:30:00,000 --> 00:30:02,500
Twenty-four minutes in.

Dwie minuty za wcześnie na ósmej minucie, sześć minut za wcześnie na dwudziestej czwartej — w obu przypadkach ćwierć upłynionego czasu, tak wygląda problem proporcji, a nie offsetu. Ostatni blok jest tym, który warto sprawdzić po przeliczeniu: otwórz plik na jego nowym znaczniku i linia powinna tam być, a jeśli jest, wszystko przed nią też jest dobre.

Klatki zostają, deklaracja się zmienia

Wejście

{1}{1}29.97
{300}{360}Hello

Wynik

{1}{1}23.976
{300}{360}Hello

MicroDVD liczy w klatkach, a złe nie były klatki — zła była liczba, przez którą je dzielono. Klatka 300 zadeklarowana przy 29.97 czyta się jako dziesięć sekund, i to jest zgłaszana wcześniejszość; zadeklarowana przy 23.976 czyta się jako dwanaście i pół, 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 dodatkowe ćwierć dwa razy.

Częste pytania

Dlaczego współczynnik dla 29,97 na 23,976 wynosi dokładnie 1,25?

Bo obie liczby klatek to okrągła liczba podzielona przez 1001 — 29,97 to 30000/1001, a 23,976 to 24000/1001 — więc dzielenie jednej przez drugą skraca 1001 i zostawia 30000 przez 24000, czyli pięć czwartych. Nic nie jest zaokrąglane ani przybliżane, dlatego blok na czterdziestej ósmej sekundzie ląduje dokładnie na pierwszej minucie.

Moje napisy pojawiają się za wcześnie i coraz wcześniej — czy to ta para?

Sprawdź, czy wcześniejszość to ćwierć upłynionego czasu. Dwie minuty za wcześnie na ósmej minucie, sześć na dwudziestej czwartej i dwadzieścia cztery minuty za wcześnie w dwugodzinnym filmie to dokładnie ta para. Strona lustrzana obsługuje przeciwny objaw: napisy biegnące za późno i coraz późniejsze wymagają 0,8, a nie 1,25.

Czy mogę użyć tej pary, żeby przejść z wideo NTSC prosto na PAL?

Nie, a przejście przez tę stronę jest celowo dłuższą drogą. 29,97 na 25 to 1,19880 i nie ma dla niego strony, bo 29,97 to tempo, w jakim biegnie sygnał, a nie prędkość, z jaką odtwarzane są obrazy — film w nim jest dopełniany powtórzonymi klatkami, które zostawiają czas trwania bez zmian. Uczciwa droga z osi NTSC na oś PAL prowadzi najpierw z powrotem do liczby klatek filmu, czyli przez to przeliczenie, a potem przez 23,976 na 25.

Wideo ma 29,97, a napisy wyglądają dobrze — czy ta strona je zepsuje?

Zepsuje, i to jest odbicie pułapki z drugiej strony. Film niesiony w sygnale NTSC ma zastosowany pulldown, który powtarza klatki bez zmiany czasu trwania, więc plik ustawiony do tego wideo jest już poprawny. Przeliczenia wymaga tylko plik, którego numery klatek podzielono przez złą liczbę; pomnożenie poprawnego pliku przez 1,25 spóźnia każdy napis o ćwierć.

Co dzieje się z długością bloków i prędkością czytania, gdy oś czasu rośnie o ćwierć?

Każdy blok zyskuje 25 procent swojej długości poza tym, że rusza się później, więc dwusekundowa linia dostaje 2,5 sekundy, podczas gdy słowa zostają dokładnie takie, jakie były. To obniża prędkość czytania każdej linii o 20 procent, co czyni tę parę jedną z dwóch w grupie, które łagodzą presję na plik, zamiast ją zwiększać — drugą jest połowienie 50 na 25.

Jaki sposób pracy zostawia plik za wczesny, a nie za późny?

Taki, który potraktował liczbę klatek kontenera jako liczbę klatek obrazów. NTSC niesie 29,97, więc narzędzie, które odczytuje tę liczbę z wideo i dzieli przez nią numery klatek, zaniży czas każdego filmu w tym sygnale, bo sam film biegnie w 23,976, a pulldown tylko dopełniał. Lekarstwem jest zadeklarowanie liczby klatek, w której obrazy naprawdę biegną, i to robi ta strona: najpierw 29,97, potem 23,976.

Powiązane narzędzia