MP4 с расширением дополнительных дорожек (MP4-AT) Формат файла 0.9

Формат файла MP4-AT поддерживает хранение вспомогательных дорожек, полезных для редактирования и композиции после захвата (например, видеодорожки с картой глубины), наряду с воспроизводимыми мультимедийными данными в структуре ISOBMFF/MP4.

Цель формата — хранить вспомогательные треки так, чтобы они были скрыты от клиентов, не реализующих эту спецификацию. Это не позволяет клиентам интерпретировать вспомогательные дорожки как воспроизводимые данные.

Зависимости

Ниже приведены нормативные ссылки для этой спецификации:

Введение

Использование слов «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ТРЕБУЕТСЯ», «СЛЕДУЕТ», «НЕ СЛЕДУЕТ», «РЕКОМЕНДУЕТСЯ», «МОЖЕТ» и «ДОПОЛНИТЕЛЬНО» соответствует стандарту IETF, определенному в RFC2119 .

Формат файла MP4-AT

Формат файла MP4-AT состоит из основных и вспомогательных дорожек, позволяющих выполнять различные операции редактирования. Основные дорожки (например, видеодорожка, к которой был применен эффект боке) записываются в файл MP4, как обычно, тогда как вспомогательные дорожки записываются в файл Auxiliary Tracks MP4 . Auxiliary Tracks MP4 — это еще один контейнер, совместимый с MP4, который помещается в блок axte (расширение дополнительных треков) . Поле axte рекомендуется располагать последним в файле, что позволяет удобно удалять вспомогательные данные путем усечения файла.

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

Линейная диаграмма, демонстрирующая расположение элементов в файле MP4-AT.

В файле есть поле moov.meta с обработчиком mdta , содержащее следующие метаданные. Метаданные могут появляться в любом порядке.

Ключ метаданных

Индикатор типа

Ценить

auxiliary.tracks.offset

78 (64-битное целое число без знака с обратным порядком байтов)

Смещение файла (в байтах) поля axte .

auxiliary.tracks.length

78 (64-битное целое число без знака с обратным порядком байтов)

Длина (в байтах) поля axte .

Коробка расширения вспомогательных гусениц (axte)

Синтаксис

Блок axte описывается с использованием семантики блока, определенной в ISO/IEC 14496-12:2022: 4.2.

aligned(8) class AuxiliaryTracksExtensionBox extends Box('axte') {
  bit(8) data[];
}

где поле данных содержит вспомогательные дорожки MP4 .

Полезная нагрузка

Полезная нагрузка axte Box — вспомогательные гусеницы MP4 . Вспомогательные дорожки MP4 имеют обычную структуру MP4.

Линейная схема, демонстрирующая расположение элементов вспомогательных дорожек MP4.

Вспомогательные треки MP4 содержат образцы метаданных для всех вспомогательных треков. Все образцы полезных данных вспомогательной дорожки должны храниться либо в поле mdat вспомогательных дорожек MP4 , либо во внешнем поле mdat MP4 (но не в обоих одновременно).

В первом случае для auxiliary.tracks.interleaved должно быть установлено значение 0 ( см. «Статические метаданные» ниже ), а смещения образцов в поле axte.moov относятся к началу Auxiliary Tracks MP4 . Это делает вспомогательные дорожки MP4 автономными, что означает, что вспомогательные дорожки MP4 можно читать автономно, без каких-либо ссылок на внешний MP4.

В последнем случае для auxiliary.tracks.interleaved должно быть установлено значение 1 ( см. «Статические метаданные» ниже ), а образцы смещений в поле axte.moov относятся к началу файла и образцам полезных данных основного и вспомогательного файлов. треки могут чередоваться. В этом случае поле axte.mdat может отсутствовать.

Статические метаданные

Вспомогательные дорожки MP4 содержат поле moov.meta с обработчиком mdta , который содержит следующие метаданные. Метаданные могут появляться в любом порядке.

Ключ метаданных

Индикатор типа

Ценить

(Необязательно) auxiliary.tracks.interleaved

75 (8-битное целое число без знака)

0: указывает, что выборки не чередуются и находятся в поле axte.mdat

1: указывает на то, что сэмплы чередуются в поле mdat основной видеодорожки.

Все остальные значения зарезервированы и не должны использоваться.

Отсутствие этих метаданных указывает на значение по умолчанию 0.

auxiliary.tracks.map

0 (зарезервировано)

Двоичный формат:

  • 1-байтовая версия = 1
  • 1-байтовый счетчик дорожек = n
  • n байт типы дорожек из следующего набора
    • 0 = четкое видео
    • 1 = видео глубины (линейное)
    • 2 = видео глубины (инверсное)
    • 3 = Метаданные глубины по времени
    • 4 = Полупрозрачное видео
    • 5-127 = Зарезервировано для будущего использования.
    • 128-255 = Пользовательские типы треков

Порядок типов дорожек в файле auxiliary.tracks.map указывает их порядок в полезных данных Auxiliary Tracks MP4 .

Типы вспомогательных дорожек

Вспомогательные дорожки MP4 могут содержать следующие дорожки видео и метаданных, полезные для редактирования.

Четкая видеодорожка

Видео в полном разрешении без применения редактируемых эффектов. Видеодорожка может храниться с разрешением, отличным от разрешения основной видеодорожки. Четкая видеодорожка может использовать любой распространенный видеокодек и может находиться в стандартном или расширенном динамическом диапазоне.

Глубина видеодорожки

Видеодорожка глубины предоставляет информацию о глубине, закодированную как стандартное видео в оттенках серого. Это сделано для того, чтобы обеспечить декодирование и кодирование дорожек глубины на устройствах, которые не имеют специальной поддержки декодирования или кодирования глубины. Видеодорожка глубины может использовать H.264/AVC , H.265/HEVC , VP9 , ​​AV1 или любой другой распространенный видеокодек. Видеодорожка глубины может быть 8-битной или 10-битной и иметь линейное или инверсное кодирование (см. спецификацию динамической глубины 1.0 ).

Дорожка метаданных глубины с синхронизацией

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

Пример типа MIME

application/x-depth-metadata

Пример синтаксиса

Двоичный формат (все с прямым порядком байтов):

  • Ближнее расстояние (16-битное число с плавающей запятой)
  • Дальнее расстояние (16-битное число с плавающей запятой)
  • Число записей в фокусной таблице (16-битное целое число)
  • Запись в фокусной таблице
    • Расстояние входа (16-битное число с плавающей запятой)
    • Радиус входа (16-битное число с плавающей запятой)
Полупрозрачная видеодорожка

Видеодорожка, хранящая значение альфа (прозрачности) для каждого пикселя в соответствующем кадре. Минимальное значение указывает на полную прозрачность, а максимальное значение указывает на полную непрозрачность. Значения между ними представляют собой различные уровни прозрачности в линейной шкале, а при компоновке используется обычный режим наложения с неумноженными заранее значениями цвета. Подобно дорожке видео глубины , эта дорожка также должна быть закодирована как стандартное видео в оттенках серого.

Примеры использования

  • Сохранение воспроизводимого визуализированного видео с боке на основной дорожке со вспомогательными видеодорожками для исходных (предварительно размытых) данных резкого цвета и карты глубины, а также вспомогательной дорожки синхронизированных метаданных с метаданными глубины, отражающими точку фокусировки в каждом кадре. Вспомогательные дорожки затем можно использовать в видеоредакторе для изменения объекта фокусировки и повторной визуализации видеодорожки с эффектом боке в высоком качестве.

  • Сохранение предварительно обработанного полупрозрачного видео-стикера, например анимированного видео с эмодзи на белом фоне на основной видеодорожке, со вспомогательной видеодорожкой, содержащей альфа-карту. Затем наборщик может использовать вспомогательную дорожку для смешивания наклейки с фоном, используя информацию о полупрозрачности из вспомогательной дорожки.