Поделиться через


Выходные метаданные

Логотип Служб мультимедиа версии 3


Предупреждение

Поддержка Служб мультимедиа Azure будет прекращена 30 июня 2024 г. Дополнительные сведения см. в руководстве по прекращению поддержки AMS.

Задание кодирования связано с входным ресурсом-контейнером (или ресурсами-контейнерами), в котором нужно выполнить эти задачи. Например, преобразуйте MP4-файл в набор мультискоростных MP4-файлов в формате H.264. Создайте эскиз и наложения. После выполнения задачи создается выходной ресурс-контейнер. Выходной ресурс может содержать видео- и аудиофайлы, эскизы и т. д. Выходной актив также содержит файл с метаданными выходного актива. Имя JSON-файла для метаданных имеет следующий формат: <source_file_name>_manifest.json (например, BigBuckBunny_manifest.json). Проверьте наличие файлов *_metadata.json и найдите в них строку FilePath, чтобы получить имя исходного файла (без усечения).

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

В этой статье рассматриваются элементы и типы схемы JSON, на основе которой создаются выходные метаданные (<имя_исходного_файла>_metadata.json).

Длина символа BaseName при использовании предустановок CopyVideo или CopyAudio

Макрос именования файлов {baseName}, используемый при именовании выходного файла метаданных, сокращается до 32 символов при использовании любой стандартной предустановки кодирования или настраиваемой предустановки. Тем не менее, чтобы избежать конфликта имен при использовании одной из операций CopyCodec (CopyAudio или CopyVideo) в настраиваемой предустановке, для {Basename} устанавливается ограничение в 64 символа. Это позволяет поддерживать сценарии, в которых клиенты хотят архивировать все выходные файлы в своем ресурсе. Если имя файла очень длинное, первые 32 символа могут быть одинаковыми у нескольких выходных файлах. В этом случае первые 32 символа будут создавать дублирующиеся выходные файлы при использовании CopyVideo или CopyAudio. В результате {Basename} сохраняет 64 символа при использовании CopyCodec в предустановке.

В конце этой статьи вы найдете полный код этой схемы и пример JSON-файла.

AssetFile

Коллекция записей AssetFile для задания кодирования.

Имя Описание
Источники Коллекция входных и исходных файлов мультимедиа, которая обрабатывалась для создания AssetFile.
Например, "Sources": [{"Name": "Ignite-short_1280x720_AACAudio_3551.mp4"}].
VideoTracks Каждый физический файл ресурса может содержать ноль или более видеодорожек, чередуемых в соответствующем формате ресурса-контейнера.
См. сведения о VideoTracks.
AudioTracks Каждый физический файл ресурса-контейнера может содержать ноль или более звуковых дорожек, чередуемых в соответствующем формате ресурса-контейнера. Это коллекция всех звуковых дорожек.
См. сведения об AudioTracks.
имя;
Обязательно
Имя файла ресурса мультимедиа.

Например, "Name": "Ignite-short_1280x720_AACAudio_3551.mp4".
Размер
Обязательно
Размер файла ресурса-контейнера в байтах.

Например, "Size": 32414631.
Длительность
Обязательно
Длительность воспроизведения содержимого. См. описание формата ISO8601.

Например, "Duration": "PT1M10.315S".

VideoTracks

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

Имя Описание
Id
Обязательно
Отсчитываемый от нуля индекс видеодорожки. Примечание. В качестве значения параметра Id необязательно указывать значение TrackID, которое используется в MP4-файле.

Например, "Id": 1.
FourCC
Обязательно
Код видеокодека FourCC, полученный от ffmpeg.

Например, "FourCC": "avc1" | "hev1" | "hvc1".
Профиль Профиль H264 (применимо только для кодека H264).

Например, "Profile": "High".
Уровень Уровень H264 (применим только для кодека H264).

Например, "Level": "3.2".
Width
Обязательно
Ширина закодированного видео в пикселях.

Например, "Width": "1280".
Height
Обязательно
Высота закодированного видео в пикселях.

Например, "Height": "720".
DisplayAspectRatioNumerator
Обязательно
Числитель пропорции отображения видео.

Например, "DisplayAspectRatioNumerator": 16.0.
DisplayAspectRatioDenominator
Обязательно
Знаменатель пропорции отображения видео.

Например, "DisplayAspectRatioDenominator": 9.0.
Framerate
Обязательно
Измеренная частота видеокадров в формате 3F.

Например, "Framerate": 29.970.
Bitrate
Обязательно
Средняя скорость аудиопотока в битах в секунду, вычисленная на основе AssetFile. Подсчитываются только полезные данные элементарного потока, издержки на упаковку не включаются.

Например, "Bitrate": 3551567.
TargetBitrate
Обязательно
Целевая средняя скорость для этой видеодорожки в битах в секунду, запрошенная на основе предустановки кодирования.

Например, "TargetBitrate": 3520000.

AudioTracks

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

Имя Описание
Id
Обязательно
Отсчитываемый от нуля индекс аудиодорожки. Примечание: в качестве значения необязательно указывать значение TrackID, которое используется в MP4-файле.

Например, "Id": 2.
Codec Строка кодека звуковой дорожки.

Например, "Codec": "aac".
Язык Например, "Language": "eng".
Каналы
Обязательно
Число аудиоканалов.

Например, "Channels": 2.
SamplingRate
Обязательно
Частота аудиовыборки: выборок/с или Гц.

Например, "SamplingRate": 48000.
Bitrate
Обязательно
Средняя скорость аудиопотока в битах в секунду, вычисленная на основе файла ресурса-контейнера. Подсчитываются только полезные данные элементарного потока, издержки на упаковку не включаются.

Например, "Bitrate": 128041.

Пример схемы JSON

{
  "AssetFile": [
    {
      "Sources": [
        {
          "Name": "Ignite-short_1280x720_AACAudio_3551.mp4"
        }
      ],
      "VideoTracks": [
        {
          "Id": 1,
          "FourCC": "avc1",
          "Profile": "High",
          "Level": "3.2",
          "Width": "1280",
          "Height": "720",
          "DisplayAspectRatioNumerator": 16.0,
          "DisplayAspectRatioDenominator": 9.0,
          "Framerate": 29.970,
          "Bitrate": 3551567,
          "TargetBitrate": 3520000
        }
      ],
      "AudioTracks": [
        {
          "Id": 2,
          "Codec": "aac",
          "Language": "eng",
          "Channels": 2,
          "SamplingRate": 48000,
          "Bitrate": 128041
        }
      ],
      "Name": "Ignite-short_1280x720_AACAudio_3551.mp4",
      "Size": 32414631,
      "Duration": "PT1M10.315S"
    },
    {
      "Sources": [
        {
          "Name": "Ignite-short_960x540_AACAudio_2216.mp4"
        }
      ],
      "VideoTracks": [
        {
          "Id": 1,
          "FourCC": "avc1",
          "Profile": "High",
          "Level": "3.1",
          "Width": "960",
          "Height": "540",
          "DisplayAspectRatioNumerator": 16.0,
          "DisplayAspectRatioDenominator": 9.0,
          "Framerate": 29.970,
          "Bitrate": 2216326,
          "TargetBitrate": 2210000
        }
      ],
      "AudioTracks": [
        {
          "Id": 2,
          "Codec": "aac",
          "Language": "eng",
          "Channels": 2,
          "SamplingRate": 48000,
          "Bitrate": 128041
        }
      ],
      "Name": "Ignite-short_960x540_AACAudio_2216.mp4",
      "Size": 20680897,
      "Duration": "PT1M10.315S"
    },
    {
      "Sources": [
        {
          "Name": "Ignite-short_640x360_AACAudio_1150.mp4"
        }
      ],
      "VideoTracks": [
        {
          "Id": 1,
          "FourCC": "avc1",
          "Profile": "High",
          "Level": "3.0",
          "Width": "640",
          "Height": "360",
          "DisplayAspectRatioNumerator": 16.0,
          "DisplayAspectRatioDenominator": 9.0,
          "Framerate": 29.970,
          "Bitrate": 1150440,
          "TargetBitrate": 1150000
        }
      ],
      "AudioTracks": [
        {
          "Id": 2,
          "Codec": "aac",
          "Language": "eng",
          "Channels": 2,
          "SamplingRate": 48000,
          "Bitrate": 128041
        }
      ],
      "Name": "Ignite-short_640x360_AACAudio_1150.mp4",
      "Size": 11313920,
      "Duration": "PT1M10.315S"
    },
    {
      "Sources": [
        {
          "Name": "Ignite-short_480x270_AACAudio_722.mp4"
        }
      ],
      "VideoTracks": [
        {
          "Id": 1,
          "FourCC": "avc1",
          "Profile": "High",
          "Level": "2.1",
          "Width": "480",
          "Height": "270",
          "DisplayAspectRatioNumerator": 16.0,
          "DisplayAspectRatioDenominator": 9.0,
          "Framerate": 29.970,
          "Bitrate": 722682,
          "TargetBitrate": 720000
        }
      ],
      "AudioTracks": [
        {
          "Id": 2,
          "Codec": "aac",
          "Language": "eng",
          "Channels": 2,
          "SamplingRate": 48000,
          "Bitrate": 128041
        }
      ],
      "Name": "Ignite-short_480x270_AACAudio_722.mp4",
      "Size": 7554708,
      "Duration": "PT1M10.315S"
    },
    {
      "Sources": [
        {
          "Name": "Ignite-short_320x180_AACAudio_380.mp4"
        }
      ],
      "VideoTracks": [
        {
          "Id": 1,
          "FourCC": "avc1",
          "Profile": "High",
          "Level": "1.3",
          "Width": "320",
          "Height": "180",
          "DisplayAspectRatioNumerator": 16.0,
          "DisplayAspectRatioDenominator": 9.0,
          "Framerate": 29.970,
          "Bitrate": 380655,
          "TargetBitrate": 380000
        }
      ],
      "AudioTracks": [
        {
          "Id": 2,
          "Codec": "aac",
          "Language": "eng",
          "Channels": 2,
          "SamplingRate": 48000,
          "Bitrate": 128041
        }`
      ],
      "Name": "Ignite-short_320x180_AACAudio_380.mp4",
      "Size": 4548932,
      "Duration": "PT1M10.315S"
    }
  ]
}

Справка и поддержка

Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов: