Start Time - это точка на внутреннем таймере файла, с которой поток должен начинаться при воспроизведении. В большинстве файлов это просто ноль, но так быть не обязано, и значение показывает, где во времени находится самый первый кадр или первый аудиосэмпл.
Какие файлы его содержат и откуда берется значение
Start Time важнее всего в видеофайлах, таких как MP4, MOV, AVI, MKV и MPEG transport stream, в которых приходят записи с ТВ, хотя аудиофайлы также содержат это поле. Файл включает несколько потоков - изображение, звук, иногда субтитры - и каждый получает собственное стартовое время, плюс отдельное стартовое время указывается для файла в целом.
Значение записывается программой, которая собрала файл: энкодером, рекордером или камерой. Это не то, что задает человек.
Та же информация присутствует и во второй форме, обычно помеченной как PTS (Presentation Time Stamp). Start Time задается в секундах, а стартовый PTS считает тики собственного таймера потока, длину которых определяет связанное поле Time Base. Оба обозначают один и тот же момент.
Как выглядит это значение
Время указывается в секундах и обычно выводится с несколькими знаками после запятой:
0.000000- обычный случай, поток начинается с самого начала0.021333- небольшое смещение на несколько сотых секунды1.400000и больше - часто встречается в вещательных записях, где таймер продолжает работу входящего потока, а не перезапускается с нуля- отрицательное значение, означающее, что поток помечен как начинающийся немного раньше нулевой точки файла
Небольшие смещения и отрицательные значения обычно не являются ошибкой. Сжатые аудиокодеки нуждаются в коротком разогреве сэмплов, прежде чем появляется реальный звук, и этот разогрев нужно где‑то учитывать; смещение в Start Time - это способ, которым файл его фиксирует, чтобы проигрыватель мог отбросить его и при этом сохранить синхронизацию звука с картинкой. Это не означает, что какие‑то кадры отсутствуют.
Почему это важно
Практическая важность этого поля - синхронизация. Если изображение и звук в файле указывают разные стартовые времена, проигрыватель, который читает и учитывает оба, держит их вместе, а приложение, которое их игнорирует, воспроизведет звук со сдвигом ровно на это значение. Несовпадение синхронизации губ (lip sync) на долю секунды без очевидной причины очень часто сводится к стартовому времени где‑то в файле.
Это важно и для монтажа. Обрезка, склейка или повторная упаковка файла (re‑wrap) удаляют или переписывают эти метки времени, поэтому из записи можно получить обрезанный клип с уплывающими субтитрами или срез, который оказывается немного не на том месте, где вы его поставили. Ненулевое стартовое время также объясняет, почему две программы могут по‑разному определять длину файла: одна может считать до последней метки времени, а другая вычитать стартовое значение.
Это поле не содержит никакой персональной информации.