Словарь

Duration что это такое?

Duration что это: это общее время воспроизведения аудио- или видеофайла. Вот как файлы хранят это значение и почему 2 программы могут показывать разные числа.

duration

Duration что это: длительность времени, в течение которого что‑то продолжается. В медиофайле duration означает общее время воспроизведения. Video duration показывает, сколько времени видео проигрывается от начала до конца, а audio duration означает то же самое для песни или записи.

Обычно вы видите это число в медиаплеере как общее время. В метаданных та же информация находится в поле с именем Duration.

Какие файлы его содержат

Duration относится к файлам, которые воспроизводятся во времени, то есть к аудио- и видеофайлам. Статичные фотографии и текстовые документы обычно не имеют поля duration.

Анимированные изображения представляют особый случай. Файл GIF хранит задержку для каждого кадра, а не общее время. ExifTool все равно показывает Duration для одного прохода анимации.

Откуда берется значение

Некоторые форматы хранят длительность напрямую. Другие хранят значения, по которым программы вычисляют длительность.

  • MP4 и MOV: заголовок фильма хранит временную шкалу и длительность. Временная шкала это количество единиц времени в секунду, а duration считает эти единицы.
  • MKV и WebM: информация сегмента может содержать необязательный элемент Duration, считаемый в тиках. По умолчанию один тик равен одной миллисекунде.
  • MP3: тег ID3 может содержать кадр TLEN с длительностью в миллисекундах. ExifTool вычисляет длительность по другим значениям, таким как размер файла и битрейт.
  • FLAC: файл хранит общее количество сэмплов и частоту дискретизации. Программы вычисляют длительность по этим двум значениям, а общее значение 0 означает, что число неизвестно.
  • WAV: ExifTool вычисляет длительность по среднему количеству байт в секунду и размеру файла.

Как выглядят значения

Одна и та же длительность может отображаться по‑разному, в зависимости от программы, читающей файл:

  • 00:05:15: часы, минуты и секунды. Этот файл длится 5 минут 15 секунд.
  • 15.23 s: секунды с указанием единицы измерения.
  • 200.541000: число без единицы измерения. Программа ffprobe из проекта FFmpeg выводит duration в таком виде, с 6 знаками после запятой. Это число означает 200,541 секунды, примерно 3 минуты 21 секунду.
  • N/A: в формате вывода по умолчанию ffprobe печатает это, когда duration отсутствует. В форматах JSON и XML duration просто опускается.

Число без единицы измерения не всегда означает секунды. Кадр TLEN считает миллисекунды, а значение duration_ts в ffprobe считает единицы базовой временной шкалы потока. Проверьте, из какого поля получено число.

Почему программы могут показывать разную duration: что это

Разные программы могут показывать разную duration для одного и того же файла, и при этом обе могут быть правы. Вот 4 причины:

  • Округление: плеер, показывающий только целые секунды, округляет 200.541 вверх или вниз.
  • Отдельные дорожки: у изображения и звука есть отдельные дорожки, и у каждой своя длительность. В файле MOV movie duration соответствует самой длинной дорожке.
  • Время начала: у каждого потока может быть собственное время начала. FFmpeg может измерять от самого раннего начала до самого позднего конца, поэтому позднее начало может увеличить общую длительность.
  • Оценка: у файла может быть битрейт, но не быть duration. Тогда FFmpeg оценивает duration по битрейту и размеру файла и предупреждает, что результат может быть неточным.

Почему это важно

Duration позволяет проверить файл, не воспроизводя его. Если вы ожидаете клип на 5 минут 15 секунд, а видите 15.23 s, файл может оказаться не тем, который вы ожидали.

Duration также связана с другими значениями. FFmpeg может вычислить общий битрейт по размеру файла и duration.

Мета-ключи