Существуют ли какие-либо видеокодеки, которые поддерживают встроенный в них таймкод?

#video #video-encoding

#Видео #кодирование видео

Вопрос:

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

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

Ответ №1:

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

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

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

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

Ответ №2:

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

Каждый кадр «помечается» этим:

 start time   sum of all previous frame durations
  

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

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

Ответ №3:

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

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

Ответ №4:

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