本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将设置变量与流输出结合使用
作业中的变量(也称作格式标识符)对 Apple HLS 和 DASH ISO 输出组中的输出的功能不同。差异如下:
对于 Apple HLS 输出
当你使用日期和时间格式标识符时 ($dt$
、$t$
、$d$
) 在段修饰符设置时,这些格式标识符解析为每个区段的完成时间,而不是作业的开始时间。
对于使用加速转码的作业,各个段可能将同时完成。这意味着日期和时间格式标识符并不总是解析为唯一值。
对于 DASH ISO 输出
您可以在 Name modifier (名称标识符) 设置中使用两个额外的格式标识符。它们将影响 DASH 清单以及输出文件名。以下是标识符:
- $Number$
-
在您的输出文件名中,
$Number$
将解析为一系列数字(从 1 开始递增)。这将替换段文件名中默认的九位段编号。例如:-
如果你指定
video_$Number$
为了名称修饰符,该服务将创建段文件,该文件video_1.mp4
、video_2.mp4
等等等等等。 -
如果您仅指定
video_
为了名称修饰符,该服务将创建段文件,该文件video_000000001.mp4
、video_000000002.mp4
等等等等等。
在您的 DASH 清单中,AWS Elemental MediaConvert 包括
duration
和startNumber
在SegmentTemplate
元素,像这样:<SegmentTemplate timescale="90000" media="main_video_$Number$.mp4" initialization="main_video_$Number$init.mp4" duration="3375000"/>
注意 如果您在一个输出中使用
$Number$
格式标识符,则也必须在输出组的所有其他输出中使用该标识符。 -
- $Bandwidth$
-
在您的输出文件名中,
$Bandwidth$
将解析为输出中 Video Bitrate (视频比特率) 的值以及 Audio Bitrate (音频比特率) 的值。无论您是否包含此格式标识符,该服务都会在段文件名中使用九位段编号。例如,假设您指定以下值:
-
Video (视频) Bitrate (bits/s) (比特率(位/秒)):
50000000
-
Audio (音频) Bitrate (kbits/s) ( 比特率(千位/秒)):
96.0
(96000 位/秒) -
Name modifier (名称修饰符):
video_$Bandwidth$
$Bandwidth$ 的值解析为 50096000。该服务将创建段文件,这些文件名为
video_50096000_000000001.mp4
、
,以此类推。video_50096000_000000002.mp4
在清单中,AWS Elemental MediaConvert 包括
duration
和startNumber
在SegmentTemplate
元素,像这样:<SegmentTemplate timescale="90000" media="main_video_$Bandwidth$.mp4" initialization="main_video_$Bandwidth$init.mp4" duration="3375000"/>
. -
- $Time$
-
在您的输出文件名中,
$Time$
将解析为段的持续时间(以毫秒为单位)。在包含此格式标识符时,该服务不会在段文件名中使用默认的九位段编号。例如,如果您指定
video180__$Time$
为了名称修饰符,该服务将创建段文件,该文件video180__345600.mp4
、video180__331680.mp4
等等等等等。在这些示例中,段持续时间为 345600 毫秒和 331680 毫秒。在清单中,AWS Elemental MediaConvert 包括
SegmentTimeline
在SegmentTemplate
元素,像这样:<Representation id="5" width="320" height="180" bandwidth="200000" codecs="avc1.4d400c"> <SegmentTemplate media="video180_$Time$.mp4" initialization="videovideo180_init.mp4"> <SegmentTimeline> <S t="0" d="345600" r="2"/> <S t="1036800" d="316800"/> </SegmentTimeline> </SegmentTemplate> </Representation>
注意 如果您在一个输出中使用
$Time$
格式标识符,则也必须在输出组的所有其他输出中使用该标识符。