Słownik

Czym jest Duration?

Czas trwania to całkowity czas odtwarzania pliku audio lub wideo. Zobacz, jak pliki zapisują tę wartość i dlaczego 2 programy mogą pokazywać różne liczby.

duration

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ę TLEN z 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ść 0 oznacza, ż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.541 w 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.