Media Encoder Standard 架构

媒体服务徽标


本文介绍 Media Encoder Standard 预设基于的 XML 架构的一些元素和类型。 本文将解释元素及其有效值。

预设(根元素)

定义编码预设。

元素

名称 类型 说明
编码 编码 根元素,指示要编码的输入源。
Outputs 输出 所需输出文件的集合。
StretchMode
minOccurs="0"
default="AutoSize
xs:string 控制输出视频帧大小、填充、像素或显示纵横比。 StretchMode 可以是下述值之一:NoneAutoSize(默认值)或 AutoFit

:严格遵循输出分辨率(例如,预设中的宽度高度),而不考虑输入视频的像素纵横比或显示纵横比。 建议在裁剪等方案中使用,其中输出视频的纵横比与输入不同。

AutoSize:输出分辨率将适应预设指定的窗口(宽度 * 高度)。 但是,编码器会生成具有正方形 (1:1) 像素纵横比的输出视频。 因此,可以覆盖输出宽度或输出高度,以便与不包含填充的输入的显示纵横比相匹配。 例如,如果输入为 1920x1080,而编码预设要求提供 1280x1280,则会覆盖预设中的高度值,并且输出将是 1280x720,这样可以保持 16:9 的输入纵横比。

AutoFit:必要时,请根据所需的输出分辨率填充输出视频(使用上下黑边或左右黑边),同时确保输出中活动视频区域的纵横比与输入相同。 例如,假设输入为 1920x1080,并且编码预设要求提供 1280x1280。 那么,输出视频将是 1280x1280,但它包含纵横比为 16:9 的“活动视频”的内部 1280x720 矩形,并在顶部和底部包含高度为 280 像素的上下黑边区域。 另举一例,如果输入为 1440x1080,并且编码预设要求提供 1280x720,则输出将是 1280x720,其中包含纵横比为 4:3 的 960x720 内部矩形,并在左侧和右侧包含宽度为 160 像素的左右黑边区域。

属性

名称 类型 说明
版本

必须
xs: decimal 预设版本。 以下限制适用:xs:fractionDigits 值 ="1" 和 xs:minInclusive 值 ="1",例如,版本 ="1.0" 。

编码

包含以下元素序列:

元素

名称 类型 说明
H264Video H264Video 视频的 H.264 编码的设置。
AACAudio AACAudio 音频的 AAC 编码的设置。
BmpImage BmpImage Bmp 图像的设置。
PngImage PngImage Png 图像的设置。
JpgImage JpgImage Jpg 图像的设置。

H264Video

元素

名称 类型 说明
TwoPass

minOccurs="0"
xs:boolean 目前,仅支持单步编码。
KeyFrameInterval

minOccurs="0"

default="00:00:02"
xs:time 确定 IDR 帧的固定间距(以秒为单位)。 亦称为“GOP 持续时间”。 请参阅 SceneChangeDetection,此元素用于控制编码器能否偏离此值。
SceneChangeDetection

minOccurs="0"

default="false"
xs:boolean 如果设置为 true,编码器尝试检测视频中的场景更改并插入 IDR 帧。
复杂性

minOccurs="0"

default="Balanced"
xs:string 控制编码速度和视频质量的平衡。 可能是以下值之一:速度、均衡或质量

默认值:均衡
SyncMode

minOccurs="0"
将在未来版本中公开功能。
H264Layers

minOccurs="0"
H264Layers 输出视频层的集合。

属性

名称 类型 说明
条件 xs:string 当输入不包含视频时,建议强制编码器插入单色视频轨道。为此,请使用 Condition="InsertBlackIfNoVideoBottomLayerOnly"(仅在最低比特率处插入视频)或 Condition="InsertBlackIfNoVideo"(在所有输出比特率处插入视频)。 有关详细信息,请参阅本文

H264Layers

默认情况下,如果向编码器发送仅包含音频而不包含视频的输入,那么输出资产文件仅包含音频数据。 某些播放器可能无法处理此类输出流。 在这种情况下,可使用 H264Video 的 InsertBlackIfNoVideo 属性设置,强制编码器将视频轨道添加到输出中。 有关详细信息,请参阅本文

元素

名称 类型 说明
H264Layer

minOccurs="0" maxOccurs="unbounded"
H264Layer H264 层的集合。

H264Layer

备注

视频限制基于 H264 级别 表中描述的值。

元素

名称 类型 说明
Profile

minOccurs="0"

default="Auto"
xs:string 可能是以下 xs:string 值之一: 自动、基线、主要、高 。
级别

minOccurs="0"

default="Auto"
xs:string
Bitrate

minOccurs="0"
xs:int 此视频层使用的比特率,以 kbps 为单位指定。
MaxBitrate

minOccurs="0"
xs: int 此视频层使用的最大比特率,以 kbps 为单位指定。
BufferWindow

minOccurs="0"

default="00:00:05"
xs: time 视频缓冲区的长度。
Width

minOccurs="0"
xs: int 输出视频帧的宽度,以像素为单位。

目前必须指定“Width”和“Height”。 Width 和 Height 需为偶数。
Height

minOccurs="0"
xs:int 输出视频帧的高度,以像素为单位。

目前必须指定“Width”和“Height”。 Width 和 Height 需为偶数。
BFrames

minOccurs="0"
xs: int 参考帧之间的 B 帧数。
ReferenceFrames

minOccurs="0"

default="3"
xs:int GOP 中的参考帧数。
EntropyMode

minOccurs="0"

default="Cabac"
xs:string 可能是以下值之一:CabacCavlc
FrameRate

minOccurs="0"
有理数 确定输出视频的帧速率。 使用默认值 "0/1",允许编码器使用与输入视频相同的帧速率。 允许的值应为通用视频帧速率。 但是,允许使用任何有效有理数。 例如 1/1 表示 1 fps 且有效。

- 12/1 (12 fps)

- 15/1 (15 fps)

- 24/1 (24 fps)

- 24000/1001 (23.976 fps)

- 25/1 (25 fps)

- 30/1 (30 fps)

- 30000/1001 (29.97 fps)

注意 如果要创建多比特率编码的自定义预设,则预设的所有层必须都使用相同的帧速率值。
AdaptiveBFrame

minOccurs="0"
xs: boolean 从 Azure 媒体编码器复制
Slices

minOccurs="0"

default="0"
xs:int 确定一帧分为多少切片。 建议使用默认值。

AACAudio

包含以下元素和组的序列。

有关 AAC 的详细信息,请参阅 AAC

元素

名称 类型 说明
Profile

minOccurs="0"

default="AACLC"
xs: string 可能是以下值之一:AACLC、HEAACV1 或 HEAACV2 。

属性

名称 类型 说明
条件 xs: string 若要强制编码器在输入不包含音频时生成包含静音曲目的资产,请指定“InsertSilenceIfNoAudio”值。

默认情况下,如果要向编码器发送仅包含视频而不包含音频的输入,则输出资产包含仅有视频数据的文件。 某些播放器可能无法处理此类输出流。 对于这种方案,可以使用此设置来强制编码器将静音曲目添加到输出。

参考 说明
AudioGroup

minOccurs="0"
请参阅 AudioGroup 的说明,了解可为每个配置文件设置的适当通道数、采样率和比特率。

AudioGroup

有关每个配置文件的有效值的详细信息,请参阅随后的“音频编解码器详细信息”表。

元素

名称 类型 说明
通道

minOccurs="0"
xs: int 音频通道数。 以下是有效选项:1、2、5、6、8。

默认值:2.
SamplingRate

minOccurs="0"
xs: int 音频采样率,以 Hz 为单位指定。
Bitrate

minOccurs="0"
xs: int 对音频进行编码时使用的比特率,以 kbps 为单位指定。

音频编解码器详细信息

音频编解码器 详细信息
AACLC 1:

- 11025:8 <= 比特率 < 16

- 12000:8 <= 比特率 < 16

- 16000:8 <= 比特率 <32

- 22050:24 <= 比特率 < 32

- 24000:24 <= 比特率 < 32

- 32000:32 <= 比特率 <= 192

- 44100:56 <= 比特率 <= 288

- 48000:56 <= 比特率 <= 288

- 88200 :128 <= 比特率 <= 288

- 96000 :128 <= 比特率 <= 288

2:

- 11025:16 <= 比特率 < 24

- 12000:16 <= 比特率 < 24

- 16000:16 <= 比特率 < 40

- 22050:32 <= 比特率 < 40

- 24000 :32 <= 比特率 < 40

- 32000:40 <= 比特率 <= 384

- 44100:96 <= 比特率 <= 576

- 48000 :96 <= 比特率 <= 576

- 88200:256 <= 比特率 <= 576

- 96000:256 <= 比特率 <= 576

5/6:

- 32000:160 <= 比特率 <= 896

- 44100:240 <= 比特率 <= 1024

- 48000:240 <= 比特率 <= 1024

- 88200:640 <= 比特率 <= 1024

- 96000:640 <= 比特率 <= 1024

8:

- 32000 :224 <= 比特率 <= 1024

- 44100 :384 <= 比特率 <= 1024

- 48000:384 <= 比特率 <= 1024

- 88200:896 <= 比特率 <= 1024

- 96000:896 <= 比特率 <= 1024
HEAACV1 1:

- 22050: 比特率 = 8

- 24000:8 <= 比特率 <= 10

- 32000:12 <= 比特率 <= 64

- 44100:20 <= 比特率 <= 64

- 48000:20 <= 比特率 <= 64

- 88200: 比特率 = 64

2:

- 32000:16 <= 比特率 <= 128

- 44100:16 <= 比特率 <= 128

- 48000:16 <= 比特率 <= 128

- 88200 :96 <= 比特率 <= 128

- 96000:96 <= 比特率 <= 128

5/6:

- 32000 :64 <= 比特率 <= 320

- 44100:64 <= 比特率 <= 320

- 48000:64 <= 比特率 <= 320

- 88200 :256 <= 比特率 <= 320

- 96000:256 <= 比特率 <= 320

8:

- 32000:96 <= 比特率 <= 448

- 44100:96 <= 比特率 <= 448

- 48000:96 <= 比特率 <= 448

- 88200:384 <= 比特率 <= 448

- 96000:384 <= 比特率 <= 448
HEAACV2 2:

- 22050:8 <= 比特率 <= 10

- 24000:8 <= 比特率 <= 10

- 32000:12 <= 比特率 <= 64

- 44100:20 <= 比特率 <= 64

- 48000:20 <= 比特率 <= 64

- 88200:64 <= 比特率 <= 64

剪辑

属性

名称 类型 说明
StartTime xs:duration 指定演示的开始时间。 StartTime 的值需与输入视频的绝对时间戳匹配。 例如,如果输入视频第一帧的时间戳为 12:00:10.000,则 StartTime 应大于或等于 12:00:10.000。
持续时间 xs:duration 指定演示文稿的持续时间(例如,视频中覆盖的外观)。

输出

属性

名称 类型 说明
FileName xs:string 输出文件的名称。

可以使用下表中描述的宏来生成输出文件名。 例如:

"Outputs": [ { "FileName": "{Basename} {Resolution} {Bitrate}.mp4", "Format": { "Type":"MP4Format" } } ]

说明
{Basename} 如果正在进行 VoD 编码,则 {Basename} 是输入资产中主文件的 AssetFile.Name 属性的前 32 个字符。

如果输入资产是实时存档,则 {Basename} 从服务器清单中的 trackName 属性派生。 如果使用 TopBitrate 提交子剪辑作业,如:“<VideoStream>TopBitrate</VideoStream>”,并且输出文件包含视频,则 {Basename} 是具有最高比特率的视频层的 trackName 的前 32 个字符。

如果改为使用所有输入比特率提交子剪辑作业,例如“<VideoStream>*</VideoStream>”,并且输出文件包含视频,则 {Basename} 是对应视频层的 trackName 的前 32 个字符。
{Codec} 对于视频,映射到“H264”;对于音频,映射到“AAC”。
{Bitrate} 如果输出文件包含视频和音频,则为目标视频比特率;如果输出文件仅包含音频,则为目标音频比特率。 使用的值是以 kbps 为单位的比特率。
{Channel} 如果文件包含音频,则为音频通道计数。
{Width} 如果文件包含视频,则为输出文件中以像素为单位的视频宽度。
{Height} 输出文件中以像素为单位的视频高度,如果文件包含视频。
{Extension} 从输出文件的“Type”属性继承。 输出文件名具有以下扩展名之一:“mp4”、“ts”、“jpg”、“png”或“bmp”。
{Index} 对于缩略图是必需的。 仅可呈现一次。

视频(继承自编解码器的复杂类型)

属性

名称 类型 说明
启动 xs:string
步骤 xs:string
范围 xs:string
PreserveResolutionAfterRotation xs:boolean 有关详细说明,请参阅以下部分:PreserveResolutionAfterRotation

PreserveResolutionAfterRotation

建议使用 PreserveResolutionAfterRotation 标志结合以百分比条目表示的分辨率值(宽度=“100%”,高度=“100%”)。

默认情况下,Media Encoder Standard (MES) 预设中的编码分辨率设置(宽度、高度)针对 0 度旋转的视频。 例如,如果输入视频为 1280x720,且为零度旋转,则默认预设确保输出具有相同的分辨率。

MESRoation1

如果输入视频是以非零旋转捕获(例如,垂直持握的智能手机或平板电脑),则默认情况下,MES 将对输入视频应用编码分辨率设置(宽度、高度),然后补偿旋转。 有关示例,请参阅下图。 预设使用 Width = "100%",Height = "100%",MES 将此解释为所需输出为 1280 像素宽和 720 像素高。 旋转视频后,它会缩小图片适应窗口,左右两侧会出现黑边区域。

MESRoation2

或者,可以使用 PreserveResolutionAfterRotation 标志,将其设置为“true”(默认值为“false”)。 因此,如果预设为 Width = "100%",Height = "100%",并将 PreserveResolutionAfterRotation 设置为 "true",则宽为 1280 像素、高为 720 像素,且 90 度旋转的输入视频会生成 0 度旋转但宽为 720 像素、高为 1280 像素的输出视频。 参阅下图:

MESRoation3

FormatGroup(组)

元素

名称 类型 说明
BmpFormat BmpFormat
PngFormat PngFormat
JpgFormat JpgFormat

BmpLayer

元素

名称 类型 说明
Width

minOccurs="0"
xs:int
Height

minOccurs="0"
xs:int

属性

名称 类型 说明
条件 xs:string

PngLayer

元素

名称 类型 说明
Width

minOccurs="0"
xs:int
Height

minOccurs="0"
xs:int

属性

名称 类型 说明
条件 xs:string

JpgLayer

元素

名称 类型 说明
Width

minOccurs="0"
xs:int
Height

minOccurs="0"
xs:int
质量

minOccurs="0"
xs:int 有效值:1(最差)-100(最好)

属性

名称 类型 说明
条件 xs:string

PngLayers

元素

名称 类型 说明
PngLayer

minOccurs="0" maxOccurs="unbounded"
PngLayer

BmpLayers

元素

名称 类型 说明
BmpLayer

minOccurs="0" maxOccurs="unbounded"
BmpLayer

JpgLayers

元素

名称 类型 说明
JpgLayer

minOccurs="0" maxOccurs="unbounded"
JpgLayer

BmpImage(继承自视频的复杂类型)

元素

名称 类型 说明
PngLayers

minOccurs="0"
PngLayers Png 层

JpgImage(继承自视频的复杂类型)

元素

名称 类型 说明
PngLayers

minOccurs="0"
PngLayers Png 层

PngImage(继承自视频的复杂类型)

元素

名称 类型 说明
PngLayers

minOccurs="0"
PngLayers Png 层

示例

查看根据此架构生成的 XML 预设示例,请参阅 MES (Media Encoder Standard) 的任务预设

后续步骤

媒体服务 v3(最新版本)

查看最新版本的 Azure 媒体服务!

媒体服务 v2(旧版)