Time Base to jednostka czasu, w której zliczany jest strumień. Zamiast przechowywać znaczniki czasu w sekundach, plik multimedialny liczy w tyknięciach własnego zegara, a time base określa, jak długo trwa jedno tyknięcie. Jest zapisywana jako ułamek sekundy.
Które pliki go zawierają i skąd pochodzi ta wartość
Time base znajdziesz w poszczególnych strumieniach wewnątrz plików multimedialnych: obrazu, dźwięku i ewentualnych napisów w plikach MP4, MOV, MKV, WebM, AVI i strumieniach transportowych MPEG, a także w samodzielnych plikach audio. Każdy strumień ma własną time base, więc audio i wideo w jednym pliku zwykle liczą w różnych jednostkach.
Wartość jest wybierana przez koder lub program, który złożył plik. Niektóre formaty kontenerów wymagają konkretnej time base i ustawiają ją na stałe; tam, gdzie format pozostawia wybór otwarty, program zapisujący wybiera coś dopasowanego do treści, a plik może po prostu przejąć domyślne ustawienie tego programu.
Jak wygląda ta wartość
Jest to zawsze ułamek, a liczba w mianowniku to liczba tyknięć na sekundę:
1/1000- jedna milisekunda na tyknięcie, typowy wybór w plikach Matroska i WebM1/90000- od dawna stosowana w strumieniach transportowych MPEG1/48000- strumienie audio często liczą w próbkach, więc time base odpowiada częstotliwości próbkowania1/12800- wartość często spotykana w strumieniach wideo w plikach MP4
Aby zamienić znacznik czasu na sekundy, pomnóż go przez ten ułamek. Znacznik prezentacji o wartości 12800 w strumieniu z time base 1/12800 to dokładnie jedna sekunda; przy time base 1/1000 znacznik o wartości 3500 oznacza trzy i pół sekundy. Dlatego surowe znaczniki czasu w raporcie wyglądają jak ogromne liczby: to liczba tyknięć, a nie sekundy. Starsze aplikacje mogą też wyświetlać oddzielny wiersz Codec Time Base obok tego.
Dlaczego ma to znaczenie
Wszystko w pliku multimedialnym dzieje się w całkowitej liczbie tyknięć, więc time base wyznacza najdokładniejsze możliwe odwzorowanie czasu w strumieniu. Jeśli klatka lub próbka wypada pomiędzy dwoma tyknięciami, jej znacznik czasu musi zostać zaokrąglony, a błędy zaokrągleń się kumulują.
To realny problem przy szybkościach klatek wideo, które nie są liczbami całkowitymi. Przy nadawczym klatkażu 30000 klatek na 1001 sekund jedna klatka trwa nieco ponad 33 milisekundy, ale nie stanowi pełnej ich liczby, więc time base w milisekundach nie może umieścić żadnej klatki dokładnie. Time base z większą liczbą tyknięć na sekundę, czyli z większym mianownikiem ułamka, może trafić dokładnie w każdą granicę klatki, dlatego kodery preferują wartości takie jak 1/12800 lub 1/90000 zamiast zwykłych milisekund.
Skutki pojawiają się jako błędy czasowe, a nie coś widocznego w pojedynczej klatce: dźwięk stopniowo rozjeżdżający się z obrazem, nierówny odstęp między klatkami, cięcie lub przewinięcie, które ląduje minimalnie obok celu. Łączenie plików, których strumienie liczą w różnych time base, oznacza konieczność przeskalowania wszystkich znaczników czasu, a taka konwersja jest klasycznym źródłem błędów synchronizacji. To pole samo w sobie nie ma wpływu na jakość obrazu ani dźwięku i nie zawiera żadnych danych osobowych.