Выходные метаданные
Предупреждение
Поддержка Служб мультимедиа 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"
}
]
}
Справка и поддержка
Вы можете обратиться к Службам мультимедиа с вопросами или следить за нашими обновлениями одним из следующих способов:
- ВОПРОСЫ И ОТВЕТЫ
-
Stack Overflow. Пометьте вопросы с помощью
azure-media-services
. - @MSFTAzureMedia или используйте @AzureSupport для запроса на поддержку.
- Отправьте запрос в службу поддержки через портал Azure.