Czas trwania to długość okresu, przez jaki coś trwa. W pliku multimedialnym oznacza całkowity czas odtwarzania. Czas trwania wideo to to, jak długo film jest odtwarzany od początku do końca, a czas trwania dźwięku oznacza to samo dla utworu lub nagrania.
Zwykle widzisz tę liczbę w odtwarzaczu multimedialnym jako łączny czas. W metadanych ta sama informacja pojawia się w polu o nazwie Duration.
Które pliki to zawierają
Czas trwania dotyczy plików odtwarzanych w czasie, czyli plików audio i wideo. Zwykłe zdjęcia i dokumenty tekstowe zazwyczaj nie mają pola czasu trwania.
Animowane obrazy są szczególnym przypadkiem. Plik GIF zapisuje opóźnienie dla każdej klatki, ale nie łączny czas. ExifTool i tak podaje Duration dla jednego pełnego przejścia animacji.
Skąd pochodzi wartość
Niektóre formaty zapisują długość bezpośrednio. Inne zapisują wartości, z których oprogramowanie oblicza długość.
- MP4 i MOV: nagłówek filmu zapisuje skalę czasu i czas trwania. Skala czasu to liczba jednostek czasu na sekundę, a czas trwania zlicza te jednostki.
- MKV i WebM: informacja o segmencie może zawierać opcjonalny element
Duration, liczony w tikach. Domyślnie jeden tik to jedna milisekunda. - MP3: znacznik ID3 może zawierać ramkę
TLENz długością w milisekundach. ExifTool oblicza długość z innych wartości, takich jak rozmiar pliku i bitrate. - FLAC: plik zapisuje łączną liczbę próbek i częstotliwość próbkowania. Oprogramowanie oblicza długość z tych 2 wartości, a łączna wartość
0oznacza, że liczba jest nieznana. - WAV: ExifTool oblicza długość z średniej liczby bajtów na sekundę i rozmiaru pliku.
Jak wyglądają wartości
Ta sama długość może występować w różnych formach, w zależności od programu, który odczytuje plik:
00:05:15: godziny, minuty i sekundy. Ten plik trwa 5 minut i 15 sekund.15.23 s: sekundy z podaną jednostką.200.541000: liczba bez jednostki. Program ffprobe z projektu FFmpeg podaje czas trwania w ten sposób, z 6 cyframi po przecinku. Liczba oznacza 200,541 sekundy, czyli około 3 minuty i 21 sekund.N/A: w swoim domyślnym formacie wyjścia ffprobe drukuje to, gdy czas trwania jest nieobecny. Format wyjścia JSON i XML pomija wtedy pole z czasem trwania.
Liczba bez jednostki nie zawsze oznacza sekundy. Ramka TLEN zlicza milisekundy, a wartość duration_ts w ffprobe zlicza jednostki bazy czasu strumienia. Sprawdź, z którego pola pochodzi liczba.
Dlaczego programy mogą pokazywać różne długości trwania
Różne programy mogą pokazywać różny czas trwania dla tego samego pliku i żaden nie musi się mylić. Oto 4 powody:
- Zaokrąglanie: odtwarzacz, który pokazuje tylko pełne sekundy, zaokrągla
200.541w górę lub w dół. - Oddzielne ścieżki: obraz i dźwięk mają oddzielne ścieżki i każda ma własny czas trwania. W pliku MOV czas trwania filmu odpowiada najdłuższej ścieżce.
- Czasy rozpoczęcia: każdy strumień może mieć własny czas rozpoczęcia. FFmpeg może mierzyć od najwcześniejszego początku do najpóźniejszego końca, więc późniejszy start może wydłużyć łączny czas.
- Szacunki: plik może mieć bitrate, ale nie mieć czasu trwania. FFmpeg wtedy szacuje czas trwania na podstawie bitrate i rozmiaru pliku oraz ostrzega, że wynik może być niedokładny.
Dlaczego ma to znaczenie
Czas trwania pozwala sprawdzić plik bez jego odtwarzania. Jeśli spodziewasz się klipu trwającego 5 minut i 15 sekund, a widzisz 15.23 s, plik może nie być tym, którego się spodziewasz.
Czas trwania łączy się też z innymi wartościami. FFmpeg może obliczyć całkowity bitrate na podstawie rozmiaru pliku i czasu trwania.