Liczba klatek na sekundę to liczba nieruchomych obrazów, czyli klatek, które wideo pokazuje w każdej sekundzie. Jednostką są klatki na sekundę, zapisywane jako fps. Normy techniczne nazywają to także częstotliwością klatek.
W pliku wideo liczba klatek na sekundę jest wartością metadanych, która opisuje strumień wideo. Przy 25 fps każda klatka pozostaje na ekranie przez 1/25 sekundy, czyli 40 milisekund.
Które pliki to zawierają
Formaty wideo, takie jak MP4, MOV, MKV, WebM, AVI, WMV i FLV, mogą przenosić informację o liczbie klatek na sekundę. Każdy format zapisuje tę wartość w inny sposób:
- MP4 i MOV: tabela time-to-sample zawiera serie klatek o tym samym czasie trwania. ExifTool oblicza
VideoFrameRatejako wartość średnią z tej tabeli. Niektóre pliki MP4 przechowują też średnie i maksymalne wartości w tagach, takich jakVideoAvgFrameRateiVideoMaxFrameRate. - MKV: pole
DefaultDurationpodaje czas na klatkę w nanosekundach. PoleFrameRatema wyłącznie charakter informacyjny. - WebM: format jest podzbiorem Matroski i również może używać
DefaultDuration. Wytyczne WebM oznaczająFrameRatejako przestarzałe. - AVI: liczba klatek na sekundę to wartość w nagłówku strumienia podzielona przez jego skalę.
- WMV i FLV: metadane mogą zawierać tag liczby klatek na sekundę.
Strumień audio nie ma takiej liczby klatek. ffprobe z FFmpeg pokazuje dla niego 0/0.
Jak wyglądają wartości
Raport może pokazywać liczbę klatek na sekundę jako liczbę dziesiętną, na przykład 29.97, albo jako ułamek, na przykład 25/1. Ułamek 25/1 oznacza 25 klatek w 1 sekundzie. Ułamek pozostaje dokładny, gdy wartość nie jest liczbą całkowitą.
Typowe wartości:
24/1: 24 fps, typowa wartość dla taśmy filmowej24000/1001: około 23,976 fps, co FFmpeg nazywantsc-film25/1: 25 fps, co FFmpeg nazywapal30000/1001: około 29,97 fps, co FFmpeg nazywantsc50i60: typowe wartości dla filmów przesyłanych do internetu, według YouTube120: wartość górnej granicy, a nie typowa. To najwyższa wartość w standardzie ITU dla telewizji ultrawysokiej rozdzielczości.
Stała i zmienna liczba klatek na sekundę
Przy stałej liczbie klatek na sekundę każda klatka trwa tyle samo. Przy zmiennej liczbie klatek na sekundę czas między klatkami zmienia się w trakcie filmu.
ffprobe z FFmpeg pokazuje 2 pola: avg_frame_rate to wartość średnia, a r_frame_rate to wartość bazowa. Wartość bazowa jest najniższą wartością, która pozwala dokładnie odwzorować wszystkie znaczniki czasu, a dokumentacja FFmpeg określa ją jako przybliżenie.
Na przykład, jeśli klatki trwają albo 1/25, albo 1/50 sekundy, r_frame_rate wynosi 50/1. Średnia jest niższa, więc te 2 pola się różnią. Znaczniki czasu liczone są w jednostkach bazy czasu.
Skąd pochodzi wartość
Nagranie wideo otrzymuje swoją liczbę klatek na sekundę podczas nagrywania. Enkoder może ją później zmienić, na przykład usuwając klatki, aby zmniejszyć rozmiar pliku.
Dla wideo z przeplotem może pojawić się inna wartość. Dla tego wideo framework AVFoundation firmy Apple raportuje częstotliwość pól, a nie klatek.
Dlaczego ma to znaczenie
Liczba klatek na sekundę wpływa głównie na to, jak płynny wydaje się ruch. Wyższa wartość daje płynniejszy ruch, ale korzyść maleje wraz ze wzrostem liczby klatek. Poniżej około 12 klatek na sekundę widzisz serię nieruchomych obrazów zamiast ruchu.
Od 24 fps w górę ruch zwykle wygląda płynnie, a 30 lub 60 fps to dobry cel. Wyższa liczba klatek sprawia też, że skompresowany plik jest większy, chyba że enkoder ją zmniejszy. Dlatego 60 fps może wyglądać płynniej niż 30 fps, ale plik rośnie.
YouTube prosi, abyś przesłał wideo z taką samą liczbą klatek na sekundę, z jaką je nagrałeś. Przy stałej liczbie klatek wartość pomnożona przez czas trwania daje liczbę klatek. Na przykład 25 fps przez 4 sekundy daje 100 klatek.