Есть ли видео кодек, который поддерживает встроенный в них тайм-код? - PullRequest
1 голос
/ 07 ноября 2011

Мне было интересно, поддерживает ли какой-либо из стандартов видео встраивание временного кода при захвате / записи.

У меня есть требование записывать и воспроизводить несколько видеопотоков, сохраняя их синхронизацию.

Ответы [ 4 ]

4 голосов
/ 10 апреля 2013

Большинство широковещательных видеокодеков позволяют помечать кадры временным кодом SMPTE или позицией кадра.

  • Данные пользователя MPEG могут содержать временные коды. Пакеты MPEG-2 TS имеют временной код.
  • Кадры DV кодируются с временным кодом.
  • H.264 очень гибок в отношении информации о синхронизации.Кадры кодируются с помощью позиции кадра.Могут быть дополнительные данные синхронизации в модуле SAL NAL, если установлен параметр times_info_present_flag.

Существуют заметные исключения.Некоторые форматы видеокадров, такие как JPEG-2000 или DNxHD, не несут информацию о временном коде.

Дополнительная информация о временном коде обычно переносится форматом контейнера (QuickTime, MPEG TS, MXF и т.*

1 голос
/ 18 августа 2012

Если размер видео не имеет значения: DV имеет временной код в каждом кадре. Я думаю, что MPEG 1/2 может также иметь временной код (SMPTE timecode) в своем потоке данных. h264 может встраивать переменные данные в свой поток данных как NAL-SEI-UserData-Block. IPCam, как Axis и Basler, встраивают время камеры и данные триггера в такие блоки данных.

1 голос
/ 19 августа 2012

Тайм-код не связан с самим кодеком. «Кодек» - это метод кодирования видео в данном случае, и временной код прикрепляется поверх него и обычно записывается вместе с закодированными видеокадрами в файл. Почти все форматы сохраняют время кадра, некоторые форматы имеют фиксированную частоту кадров, некоторые обеспечивают большую гибкость.

При воспроизведении речь идет о каркасе, обеспечивающем применение меток времени и представление кадров во времени, в частности, при синхронизации нескольких потоков.

1 голос
/ 03 февраля 2012

Для этого вам не нужен встроенный временной код в видео, в заголовке видео достаточно полей, чтобы помочь вам разобраться в этом.

Каждый кадр «помечается» следующим образом:

start time + sum of all previous frame durations

Учитывая, что у вас есть относительная начальная точка (которую можно сохранить в заголовке видео для каждой дорожки), вы можете отслеживать, когда должен отображаться каждый кадр.

Длительность указана в атоме stts , и вы можете поместить относительную начальную точку в атом заголовка носителя (обратите внимание на области времени создания / изменения)

...