

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 매니페스트 업데이트 시간 모니터링
<a name="monitoring-manifest-last-updated"></a>

AWS Elemental MediaPackage 재생 응답에는 MediaPackage가 비동적 광고 삽입 워크플로에서 매니페스트를 마지막으로 수정한 시기를 나타내는 다음 사용자 지정 헤더가 포함됩니다. 이러한 헤더는 기한 경과 매니페스트와 관련된 문제를 해결할 때 유용합니다.

## X-MediaPackage-Manifest-Last-Sequence
<a name="manifest-last-sequence"></a>

매니페스트에서 가장 높은 세그먼트 시퀀스 번호입니다.
+ DASH의 경우 이 번호는 매니페스트의 최저 변환에서 가장 높은 세그먼트 번호입니다.
+ HLS 및 CMAF의 경우 이 번호는 미디어 재생 목록에서 가장 높은 세그먼트 번호입니다.
+ MSS의 경우 이 번호는 매니페스트에서 가장 높은 세그먼트 번호입니다.

[매니페스트 예](#manifest-examples)에 대해서는 다음 단원을 참조하십시오.

## X-MediaPackage-Manifest-Last-Updated
<a name="manifest-last-updated"></a>

MediaPackage가 `X-MediaPackage-Manifest-Last-Sequence`에서 참조된 세그먼트를 생성할 때의 밀리초 단위 Epoch 타임스탬프입니다.

## 매니페스트 예
<a name="manifest-examples"></a>



### DASH 매니페스트 예
<a name="dash-examples"></a>

압축된 DASH 매니페스트와 전체 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`에서 참조된 세그먼트를 생성할 때의 밀리초 단위 Epoch 타임스탬프입니다.

```
<?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`에서 참조된 세그먼트를 생성할 때의 밀리초 단위 Epoch 타임스탬프입니다.

```
<?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`에서 참조된 세그먼트를 생성할 때의 밀리초 단위 Epoch 타임스탬프입니다.

```
<?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는 `Fragments(a_2_0={start time})`에 나와 있는 것처럼 매니페스트의 가장 높은 세그먼트로부터 `X-MediaPackage-Manifest-Last-Sequence` 값을 결정합니다. 예를 들어, 다음 매니페스트에서 `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>
```