

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控清单更新时间
<a name="monitoring-manifest-last-updated"></a>

AWS Elemental MediaPackage 播放响应包括以下自定义标题，用于指示在非动态广告插入工作流程中 MediaPackage 最后一次修改清单的时间。在排查与过时清单相关的问题时，这些标头非常有用。

## X MediaPackage-清单最后一个序列
<a name="manifest-last-sequence"></a>

这是清单中最高的段序列号。
+ 对于 DASH，这是清单最低副本中最高的段号。
+ 对于 HLS 和 CMAF，这是媒体播放列表中最高的段号。
+ 对于 MSS，这是清单中最高的段号。

有关[清单示例](#manifest-examples)，请参阅以下部分。

## X MediaPackage-清单上次更新时间
<a name="manifest-last-updated"></a>

 MediaPackage 生成中提及的分段时的 epoch 时间戳（以毫秒为单位）。`X-MediaPackage-Manifest-Last-Sequence`

## 清单示例
<a name="manifest-examples"></a>



### DASH 清单示例
<a name="dash-examples"></a>

对于紧凑型和完整版 DASH 清单， MediaPackage 根据清单的最低格式副本中的最高段号确定`X-MediaPackage-Manifest-Last-Sequence`值。该服务根据生成 `X-MediaPackage-Manifest-Last-Sequence` 中引用的段的时间来计算 `X-MediaPackage-Manifest-Last-Updated` 值。

#### 带持续时间的数字：压缩清单
<a name="collapsible-section-1"></a>

以下是使用带有持续时间的数字模板的紧凑型 DASH 清单示例。 MediaPackage 根据清单中最低格式副本中的最高片段编号确定`X-MediaPackage-Manifest-Last-Sequence`值。例如，在以下清单中，最高段号为 `index_video_5_0_175232.mp4`，因此 `X-MediaPackage-Manifest-Last-Sequence` 的值为 `175232`。有关如何 MediaPackage计算序列`$Number$`值的信息，请参阅[`SegmentTemplate` 中的 `duration` 属性](segtemp-format-duration.md)。的值`X-MediaPackage-Manifest-Last-Updated`是 MediaPackage 生成中提及的分段时以毫秒为单位的纪元时间戳。`X-MediaPackage-Manifest-Last-Sequence`

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2021-09-08T21:01:38" minimumUpdatePeriod="PT0S" availabilityStartTime="2018-11-16T19:08:30Z+00:00" minBufferTime="PT0S" suggestedPresentationDelay="PT0.000S" timeShiftBufferDepth="PT116.533S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT0.000S" id="1">
    <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
        <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="175032" duration="90000"/>
        <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/>
        <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/>
        <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/>
    </AdaptationSet>
</Period>
</MPD>
```

#### 带时间轴的数字：压缩清单
<a name="collapsible-section-2"></a>

以下是使用带有时间轴模板的数字的紧凑型 DASH 清单示例。 MediaPackage 根据清单中最低格式副本中的最高片段编号确定`X-MediaPackage-Manifest-Last-Sequence`值。例如，在以下清单中，最高段号为 `index_video_1_0_7.mp4`，因此 `X-MediaPackage-Manifest-Last-Sequence` 的值为 `7`。的值`X-MediaPackage-Manifest-Last-Updated`是 MediaPackage 生成中提及的分段时以毫秒为单位的纪元时间戳。`X-MediaPackage-Manifest-Last-Sequence`

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="static" mediaPresentationDuration="PT72.458S" minBufferTime="PT0S" profiles="urn:mpeg:dash:profile:isoff-main:2011">
  <Period start="PT0.000S" id="1" duration="PT74.758S">
    <AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="48000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1621616401" initialization="index_video_$RepresentationID$_0_init.mp4?m=1621616401" startNumber="1" presentationTimeOffset="108800">
        <SegmentTimeline>
          <S t="110400" d="540000" r="5"/>
          <S t="3350400" d="238000"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="640" height="480" frameRate="24/1" bandwidth="5000000" codecs="avc1.4D401E"/>
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1621616401" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1621616401" startNumber="1" presentationTimeOffset="108800">
        <SegmentTimeline>
          <S t="108800" d="541696"/>
          <S t="650496" d="540672"/>
          <S t="1191168" d="539648" r="1"/>
          <S t="2270464" d="540672"/>
          <S t="2811136" d="539648"/>
          <S t="3350784" d="236544"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="192000" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2021-05-21T16:59:47.450Z"></SupplementalProperty>
  </Period>
</MPD>
```

#### 带时间轴的数字：压缩清单
<a name="collapsible-section-2"></a>

以下是使用带有持续时间的数字模板的紧凑型 DASH 清单示例。 MediaPackage 根据清单中最低格式副本中的最高片段编号确定`X-MediaPackage-Manifest-Last-Sequence`值。例如，在以下清单中，最高段号为 `index_video_1_0_1675200.mp4`，因此 `X-MediaPackage-Manifest-Last-Sequence` 的值为 `1675200`。有关如何 MediaPackage计算序列号的信息，请参阅[`SegmentTemplate` 中的 `media` 属性](segtemp-format-media.md)。的值`X-MediaPackage-Manifest-Last-Updated`是 MediaPackage 生成中提及的分段时以毫秒为单位的纪元时间戳。`X-MediaPackage-Manifest-Last-Sequence`

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="static" mediaPresentationDuration="PT72.458S" minBufferTime="PT0S" profiles="urn:mpeg:dash:profile:isoff-main:2011">
  <Period start="PT0.000S" id="1" duration="PT74.758S">
    <AdaptationSet mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="48000" media="index_video_$RepresentationID$_0_$Time$.mp4?m=1621616401" initialization="index_video_$RepresentationID$_0_init.mp4?m=1621616401" startNumber="1" presentationTimeOffset="108800">
        <SegmentTimeline>
          <S t="55200" d="270000" r="5"/>
          <S t="1675200" d="119000"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="640" height="480" frameRate="24/1" bandwidth="5000000" codecs="avc1.4D401E"/>
    </AdaptationSet>
    <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Time$.mp4?m=1621616401" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1621616401" startNumber="1" presentationTimeOffset="108800">
        <SegmentTimeline>
          <S t="108800" d="541696"/>
          <S t="650496" d="540672"/>
          <S t="1191168" d="539648" r="1"/>
          <S t="2270464" d="540672"/>
          <S t="2811136" d="539648"/>
          <S t="3350784" d="236544"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="192000" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2021-05-21T16:59:47.450Z"></SupplementalProperty>
  </Period>
</MPD>
```

### HLS 清单
<a name="hls-examples"></a>

MediaPackage 确定清单中最后一段的`X-MediaPackage-Manifest-Last-Sequence`值。例如，在以下清单中，`index_1_3.ts` 是最高段序列号，因此 `X-MediaPackage-Manifest-Last-Sequence` 的值为 `3`。的值`X-MediaPackage-Manifest-Last-Updated`对应于 MediaPackage 生成清单中最后一段时的 epoch 时间戳（以毫秒为单位）。

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:7.500,
index_1_0.ts?m=1583172400
#EXTINF:7.500,
index_1_1.ts?m=1583172400
#EXTINF:7.500,
index_1_2.ts?m=1583172400
#EXTINF:7.500,
index_1_3.ts?m=1583172400
#EXT-X-ENDLIST
```

### CMAF 清单
<a name="hls-example"></a>

与 HLS 类似， MediaPackage 它确定清单中最后一个分段的`X-MediaPackage-Manifest-Last-Sequence`值。例如，在以下清单中，`../cmafseg_video_1_10.mp4?m=1621616399` 是最高段序列号，因此 `X-MediaPackage-Manifest-Last-Sequence` 的值为 `10`。的值`X-MediaPackage-Manifest-Last-Updated`对应于 MediaPackage 生成清单中最后一段时的 epoch 时间戳（以毫秒为单位）。

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-MAP:URI="../cmafseg_video_1_track_1098178399_csid_aaa_2_init.mp4"
#EXTINF:11.250,
../cmafseg_video_1_1.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_2.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_3.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_4.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_5.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_6.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_7.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_8.mp4?m=1621616399
#EXTINF:11.250,
../cmafseg_video_1_9.mp4?m=1621616399
#EXTINF:0.542,
../cmafseg_video_1_10.mp4?m=1621616399
#EXT-X-ENDLIST
```

### MSS 清单
<a name="mss-examples"></a>

MediaPackage 根据清单中最高的分段确定`X-MediaPackage-Manifest-Last-Sequence`值，如所示`Fragments(a_2_0={start time})`。例如，在以下清单中，`Fragments(a_2_0=380533333)` 是最高序列号，因此 `X-MediaPackage-Manifest-Last-Sequence` 的值为 `380333333`。的值`X-MediaPackage-Manifest-Last-Updated`对应于 MediaPackage 生成清单中最后一段时的 epoch 时间戳（以毫秒为单位）。

```
<SmoothStreamingMedia MajorVersion="2" MinorVersion="2" TimeScale="10000000" CanSeek="TRUE" CanPause="TRUE" IsLive="TRUE" LookAheadFragmentCount="2" DVRWindowLength="3000000000" Duration="0">
  <CustomAttributes>
    <Attribute Name="ProducerReferenceTime" Value="2017-06-14T22:07:01.967Z"/>
  </CustomAttributes>
  <StreamIndex Type="video" Name="video" Subtype="" Chunks="3" TimeScale="10000000" Url="Events(203_0)/QualityLevels({bitrate})/Fragments(v={start time})" QualityLevels="1">
    <QualityLevel Index="0" Bitrate="4000000" CodecPrivateData="00000001274D401F924602802DD80880000003008000001E7220007A120000895477BDC07C22114E0000000128FEBC80" FourCC="H264" MaxWidth="1280" MaxHeight="720"/>
    <c d="120000000" t="20333333"/>
    <c d="120000000"/>
    <c d="120000000"/>
  </StreamIndex>
  <StreamIndex Type="audio" Name="fra_1" Language="fra" Subtype="" Chunks="3" TimeScale="10000000" Url="Events(203_0)/QualityLevels({bitrate})/Fragments(a_2_0={start time})">
    <QualityLevel Index="0" Bitrate="128460" CodecPrivateData="1190" FourCC="AACL" AudioTag="255" Channels="2" SamplingRate="48000" BitsPerSample="16" PacketSize="4"/>
    <c d="120533333" t="20000000"/>
    <c d="119893333"/>
    <c d="120106667"/>
  </StreamIndex>
</SmoothStreamingMedia>
```