输入元数据
警告
Azure 媒体服务将于 2024 年 6 月 30 日停用。 有关详细信息,请参阅 AMS 停用指南。
编码作业与要执行部分编码任务的输入资产相关联。 完成任务后,会生成一个输出资产。 输出资产包含视频、音频、缩略图、清单和其他文件。
输出资产还包含提供输入资产相关元数据的文件。 元数据 JSON 文件的名称具有随机 ID,请勿使用它来标识输出资产所属的输入资产。 若要标识其所属的输入资产,请使用 Uri
字段(有关详细信息,请参阅其他子元素)。
媒体服务不会先扫描输入资产以生成元数据。 只有在作业中处理输入资产时,才会生成输入元数据。 因此,此项目会写入到输出资产。 使用不同的工具为输入资产和输出资产生成元数据。 因此,输入元数据的模式与输出元数据略有不同。
本文讨论作为输入元数据 (<asset_id>_metadata.json) 的基础的 JSON 架构的元素和类型。 若要深入了解包含有关输出资产的元数据的文件,请参阅输出元数据。
可以在本文末尾找到 JSON 架构示例。
注意
所有时间都基于 ISO-8601 格式。 有关持续时间格式的详细信息,请参阅同一篇文章中的时间和持续时间。
AssetFile
包含用于编码作业的 AssetFile 元素集合。
注意
以下四个子元素必须出现在一个序列中。
“属性” | 说明 |
---|---|
VideoTracks | 每个物理资产文件可包含交错成适当容器格式的零个或多个视频轨道。 有关详细信息,请参阅 VideoTracks。 |
AudioTracks | 每个物理资产文件可以包含零个或以上交错到相应容器格式的音频轨道。 有关详细信息,请参阅 AudioTracks |
Metadata | 资产文件的元数据表示为键\值字符串。 例如: <Metadata key="language" value="eng" /> |
其他子元素
“属性” | 说明 |
---|---|
名称 必须 |
资产文件名称。 示例: "Name": "Ignite-short.mp4" |
Uri 必须 |
输入资产所在的 URL。 若要标识输出资产所属的输入资产,请使用 Uri 字段,而不使用 ID。 |
大小 必须 |
以字节为单位的资产文件大小。 示例: "Size": 75739259 |
持续时间 必须 |
内容播放持续时间。 示例: "Duration": "PT1M10.304S" 。 |
NumberOfStreams 必须 |
资产文件中的流数。 示例: "NumberOfStreams": 2 |
FormatNames 必须 |
格式名称。 示例: "FormatNames": "mov,mp4,m4a,3gp,3g2,mj2" |
FormatVerboseName 必须 |
格式详细名称。 示例: "FormatVerboseName": "QuickTime / MOV" |
StartTime | 内容开始时间。 示例: "StartTime": "PT0S" |
OverallBitRate | 资产文件的平均比特率(比特/秒)。 示例: "OverallBitRate": 8618539 |
VideoTracks
“属性” | 说明 |
---|---|
FourCC 必须 |
ffmpeg 报告的视频编解码器 FourCC 代码。 示例: "FourCC": "avc1" | "hev1" | "hvc1" |
Profile | 视频轨道的配置文件。 示例: "Profile": "Main" |
级别 | 视频轨道的级别。 示例: "Level": "3.2" |
PixelFormat | 视频轨道的像素格式。 示例: "PixelFormat": "yuv420p" |
Width 必须 |
以像素为单位的编码视频宽度。 示例: "Width": "1280" |
Height 必须 |
以像素为单位的编码视频高度。 示例: "Height": "720" |
DisplayAspectRatioNumerator 必须 |
视频显示纵横比分子。 示例: "DisplayAspectRatioNumerator": 16.0 |
DisplayAspectRatioDenominator 必须 |
视频显示纵横比分母。 示例: "DisplayAspectRatioDenominator": 9.0 |
SampleAspectRatioNumerator | 视频样本纵横比分子。 示例: "SampleAspectRatioNumerator": 1.0 |
SampleAspectRatioDenominator | 示例: "SampleAspectRatioDenominator": 1.0 |
FrameRate 必须 |
采用 .3f 格式的测量的视频帧速率。 示例: "FrameRate": 29.970 |
Bitrate | 由资产文件计算所得的平均视频比特率(比特/秒)。 仅针对基本流有效负载计数,不包含打包开销。 示例: "Bitrate": 8421583 |
HasBFrames | B 帧的视频轨道数。 示例: "HasBFrames": 2 |
Metadata | 可以用来保存各种信息的通用键/值字符串。 请参阅本文末尾的完整示例。 |
Id 必须 |
此音频轨或视频轨从零开始的索引。 此“Id”不一定是 MP4 文件中使用的 TrackID。 示例: "Id": 2 |
Codec | 视频轨道编解码器字符串。 示例: "Codec": "h264 | hev1" |
CodecLongName | 音频或视频轨道编解码器长名称。 示例: "CodecLongName": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10" |
Codec | 视频轨道编解码器字符串。 示例: "Codec": "h264 | hev1" |
TimeBase 必须 |
时间基准。 示例: "TimeBase": "1/30000" |
NumberOfFrames | 帧数(针对视频轨)。 示例: "NumberOfFrames": 2107 |
StartTime | 轨道开始时间。 示例: "StartTime": "PT0.033S" |
持续时间 | 轨道持续时间。 示例: "Duration": "PT1M10.304S" |
AudioTracks
名称 | 说明 |
---|---|
SampleFormat | 示例格式。 示例: "SampleFormat": "fltp" |
ChannelLayout | 通道布局。 示例: "ChannelLayout": "stereo" |
通道 必须 |
音频通道数(0 个或多个)。 示例: "Channels": 2 |
SamplingRate 必须 |
音频采样率(样本数/秒或 Hz)。 示例: "SamplingRate": 48000 |
Bitrate | 由资产文件计算所得的平均音频比特率(比特/秒)。 仅对基本流有效负载计数,此计数中不包含打包开销。 示例: "Bitrate": 192080 |
Metadata | 可以用来保存各种信息的通用键/值字符串。 请参阅本文末尾的完整示例。 |
Id 必须 |
此音频轨或视频轨从零开始的索引。 这不一定是 MP4 文件中使用的 TrackID。 示例: "Id": 1 |
Codec | 视频轨道编解码器字符串。 示例: "Codec": "aac" |
CodecLongName | 音频或视频轨道编解码器长名称。 示例: "CodecLongName": "AAC (Advanced Audio Coding)" |
TimeBase 必须 |
时间基准。 示例: "TimeBase": "1/48000" |
NumberOfFrames | 帧数(针对视频轨)。 示例: "NumberOfFrames": 3294 |
StartTime | 轨道开始时间。 示例: "StartTime": "PT0S" |
持续时间 | 轨道持续时间。 示例: "Duration": "PT1M10.272S" |
Metadata
名称 | 说明 |
---|---|
键 必须 |
键/值对中的键。 |
value 必须 |
键/值对中的值。 |
架构示例
{
"AssetFile": [
{
"VideoTracks": [
{
"FourCC": "avc1",
"Profile": "Main",
"Level": "3.2",
"PixelFormat": "yuv420p",
"Width": "1280",
"Height": "720",
"DisplayAspectRatioNumerator": 16.0,
"DisplayAspectRatioDenominator": 9.0,
"SampleAspectRatioNumerator": 1.0,
"SampleAspectRatioNumeratorSpecified": true,
"SampleAspectRatioDenominator": 1.0,
"SampleAspectRatioDenominatorSpecified": true,
"FrameRate": 29.970,
"Bitrate": 8421583,
"BitrateSpecified": true,
"HasBFrames": 2,
"HasBFramesSpecified": true,
"Disposition": {
"Default": 1
},
"Metadata": [
{
"key": "creation_time",
"value": "2018-02-21T21:42:08.000000Z"
},
{
"key": "language",
"value": "eng"
},
{
"key": "handler_name",
"value": "Video Media Handler"
},
{
"key": "encoder",
"value": "AVC Coding"
}
],
"Id": 2,
"Codec": "h264",
"CodecLongName": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"TimeBase": "1/30000",
"NumberOfFrames": 2107,
"NumberOfFramesSpecified": true,
"StartTime": "PT0.033S",
"Duration": "PT1M10.304S"
}
],
"AudioTracks": [
{
"SampleFormat": "fltp",
"ChannelLayout": "stereo",
"Channels": 2,
"SamplingRate": 48000,
"Bitrate": 192080,
"BitrateSpecified": true,
"BitsPerSampleSpecified": true,
"Disposition": {
"Default": 1
},
"Metadata": [
{
"key": "creation_time",
"value": "2018-02-21T21:42:08.000000Z"
},
{
"key": "language",
"value": "eng"
},
{
"key": "handler_name",
"value": "Sound Media Handler"
}
],
"Id": 1,
"Codec": "aac",
"CodecLongName": "AAC (Advanced Audio Coding)",
"TimeBase": "1/48000",
"NumberOfFrames": 3294,
"NumberOfFramesSpecified": true,
"StartTime": "PT0S",
"Duration": "PT1M10.272S"
}
],
"Metadata": [
{
"key": "major_brand",
"value": "mp42"
},
{
"key": "minor_version",
"value": "19529854"
},
{
"key": "compatible_brands",
"value": "mp42isom"
},
{
"key": "creation_time",
"value": "2018-02-21T21:42:08.000000Z"
}
],
"Name": "Ignite-short.mp4",
"Uri": "https://amsstorageacct.blob.core.chinacloudapi.cn/asset-00000000-0000-0000-000000000000/ignite.mp4",
"Size": 75739259,
"Duration": "PT1M10.304S",
"NumberOfStreams": 2,
"FormatNames": "mov,mp4,m4a,3gp,3g2,mj2",
"FormatVerboseName": "QuickTime / MOV",
"StartTime": "PT0S",
"OverallBitRate": 8618539,
"OverallBitRateSpecified": true
}
]
}