

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

# ESAM XML을 사용하여 SCTE-35 마커 지정
<a name="specifying-scte-35-markers-using-esam-xml"></a>

입력 비디오에 SCTE-35 마커가 포함되어 있지 않지만 출력에 광고 삽입 지점을 지정해야 하는 경우 AWS Elemental MediaConvert 작업 설정에서 ESAM(Event Signaling and Management) XML 문서를 제공할 수 있습니다. 이 경우 MediaConvert는 사용자가 문서에 지정한 삽입 지점에서 IDR(Instantaneous Decoder Refresh) 프레임을 사용하여 출력을 조건화합니다. MPEG2-TS 및 HLS 컨테이너로도 래핑된 출력에서는 MediaConvert가 해당 지점에 SCTE-35 time\$1signal 메시지를 삽입합니다.

**Apple HLS** 출력 그룹의 경우 HLS 매니페스트 컨디셔닝 XML 문서를 제공할 수도 있습니다. 그런 다음 작업이 HLS 출력의 매니페스트를 적절히 조건화하도록 설정할 수 있습니다.

**참고**  
MPEG2-TS 출력에 SCTE-35 마커를 배치하려면 ESAM XML 문서를 제공하는 이외에 각 출력에서 **ESAM SCTE-35**를 활성화해야 합니다. 자세한 내용은 이 개요 다음에 나오는 콘솔 절차를 참조하세요.

**ESAM 문서 내 타임코드 소개**  
클리핑 및 스티칭 후 최종 출력의 타이밍을 기준으로 XML 문서에서 삽입 지점을 지정합니다. 타임코드 설정과 상관없이 타이밍을 00:00:00:00부터 시작합니다. 다음과 같은 24시간 형식을 프레임 번호(HH:MM:SS:FF)와 함께 사용합니다.

예를 들어, 어떤 작업에 5분 프리롤, 1시간 필름, 5분 포스트롤 등 3개의 입력이 있습니다. 입력 클리핑을 사용하여 1시간 입력의 마지막 20분을 클리핑합니다. 따라서 프리롤 및 포스트롤 포함 출력 길이는 30분입니다. 첫 번째 삽입 지점이 주요 콘텐츠 시작 3분 후에 나타나도록 하려면 해당 삽입 지점을 5분 프리롤의 3분 후인 8분으로 지정합니다.

**작업 설정에 ESAM XML 문서를 포함하려면(콘솔)**

1. [https://console.aws.amazon.com/mediaconvert](https://console.aws.amazon.com/mediaconvert)에서 MediaConvert 콘솔을 엽니다.

1. **새 작업 생성**을 선택합니다.

1. [자습서: 작업 설정 구성](setting-up-a-job.md) 및 [출력 생성](output-settings.md)의 설명에 따라 비디오와 오디오에 대한 입력, 출력 그룹 및 출력을 설정합니다.

1. 왼쪽의 **작업** 창에 있는 **작업 설정** 섹션에서 **설정**을 선택합니다.

1. **Ad signaling(광고 신호 전송)** 섹션에서 **Event signaling and messaging(ESAM)(이벤트 신호 및 메시징(ESAM))**을 활성화합니다.

1. **Signal processing notification XML(신호 처리 알림 XML)**에서 ESAM 신호 전송 XML 문서를 텍스트로 입력합니다. 예제는 [ESAM XML 신호 처리 알림의 예](example-esam-xml.md) 섹션을 참조하세요.
**참고**  
기본값으로 MediaConvert는 ESAM 페이로드에 4초 프리롤을 추가합니다. 이렇게 하면 MediaConvert가 SCTE-35 메시지를 HLS 매니페스트에 지정된 큐 마커보다 한 세그먼트 먼저 배치할 수 있습니다. 프리롤을 제거하려면 `responseSignalPreroll`을 0으로 설정합니다. 이 설정은 [EsamSettings](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs-id.html#jobs-id-model-esamsettings)의 하위 항목입니다.

1. HLS 매니페스트에 SCTE-35 마커 정보를 포함하려면 **매니페스트 확인 조건 알림 XML**에서 ESAM 매니페스트 조건 XML 문서를 텍스트로 입력합니다. MediaConvert에는 DASH 매니페스트의 SCTE-35 마커에 대한 정보가 포함되지 않습니다.

   매니페스트 외에 전송 스트림에 SCTE-35 마커를 삽입하려면 MCC 문서의 `dataPassThrough` 속성을 `"true"`로 설정하세요. 전송 스트림에 마커를 사용하지 않으려면 `dataPassThrough` 속성을 제거하세요.

   예제는 [ESAM XML 매니페스트 확인 조건 알림의 예](example-esam-xml-manifest-conditioning.md) 섹션을 참조하세요.

1. SCTE-35 마커를 삽입할 각 MPEG2-TS 출력에 대해 마커를 활성화합니다.

   1. 왼쪽의 **작업** 창에 있는 **Output groups(출력 그룹)**, **File group(파일 그룹)**에서 출력을 선택합니다.

   1. 이것이 MPEG2-TS 출력인지 확인합니다. **Output settings(출력 설정)** 섹션에서 **컨테이너**가 **MPEG-2 Transport Stream(MPEG-2 전송 스트림)**으로 설정되었는지 확인합니다.

   1. **Container settings(컨테이너 설정)**를 선택하고 아래로 스크롤하여 **PID controls(PID 컨트롤)** 섹션을 찾습니다.

   1. **ESAM SCTE-35**에서 **활성**을 선택합니다.

   1. **SCTE-35 source(SCTE-35 소스)**는 기본값 **없음**을 유지합니다.

1. 작업에 있는 **Apple HLS** 출력 그룹에 대해서만 이 단계를 수행합니다.

   ESAM 삽입 지점을 사용하여 HLS 매니페스트를 조건화하려면 [HLS 매니페스트에 SCTE-35 정보 포함](including-scte-35-information-in-your-hls-manifest.md)의 절차를 따릅니다. 그렇지 않으면 다음 단계를 따라 다음 설정이 여전히 기본값 상태인지 확인합니다.

   1. 이 절차의 이전 단계에서 설명한 **Manifest confirm condition notification XML(매니페스트 확인 조건 알림 XML)**이 비어 있는지 확인합니다.

   1. 작업의 각 **Apple HLS** 출력 그룹에서 **Ad Markers(광고 마커)**가 선택 취소되었는지 확인합니다.

      1. 왼쪽의 **작업** 창에 있는 **Output groups(출력 그룹)**에서 **Apple HLS**를 선택합니다.

      1. **Apple HLS 그룹 설정** 섹션에서 **고급**을 선택합니다.

      1. **Ad markers(광고 마커)** 섹션에서 **Elemental** 및 **SCTE-35 enhanced(SCTE-35 향상)** 확인란을 선택 취소합니다.

   1. **Apple HLS** 출력 그룹의 각 출력에서 **SCTE-35 source(SCTE-35 소스)**가 **없음**으로 설정되었는지 확인합니다.

      1. 왼쪽의 **작업** 창에 있는 **Output groups(출력 그룹)**, **Apple HLS**에서 출력을 선택합니다.

      1. **Output settings(출력 설정)** 섹션에서 **Transport stream settings(전송 스트림 설정)**를 선택합니다.

      1. **SCTE-35 source(SCTE-35 소스)**에서 **없음**을 선택합니다.

**작업 설정에 ESAM XML 문서를 포함하려면(API, SDK, AWS CLI)**

1. JSON 작업 사양에서 작업 설정의 루트에 [`esam` 속성](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-jobsettings-esam) 및 하위 속성을 포함합니다. 이러한 속성은 아래 예와 같습니다.

   1.  설정 `sccXml`에 ESAM 신호 처리 XML 사양을 문자열로 포함합니다.

   1. 선택적으로, 설정 `mccXml`에 매니페스트 확인 조건 XML 알림 문서를 문자열로 포함합니다.

   ```
     "esam": {
       "responseSignalPreroll": 4000,
       "signalProcessingNotification": {
         "sccXml": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<SignalProcessingNotification ..."
       },
       "manifestConfirmConditionNotification": {
         "mccXml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<ns2:ManifestConfirmConditionNotification ... " 
       }
   ```

1. 각 M2TS(MPEG2 전송 스트림) 출력에서 JSON 작업을 다음 예제와 같이 설정합니다. [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35esam](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35esam) 속성을 포함합니다. [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35source](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m2tssettings-scte35source)(을)를 `NONE`(으)로 설정합니다.

   ```
     "outputs": [
           {
             "extension": "m2ts",
             "containerSettings": {
               "container": "M2TS",
               "m2tsSettings": {
                 ...
   
                 "scte35Esam": {
                   "scte35EsamPid": 508
                 },
                 ...
                 "scte35Source": "NONE"
               }
   ```

1. SCTE-35 정보로 HLS 매니페스트를 조건화하려는 경우 작업의 각 Apple HLS 출력 그룹에 대해 다음을 포함합니다. 이러한 설정은 이 단계의 끝부분에 있는 예제에 나와 있습니다.
   +  [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m3u8settings-scte35source](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-m3u8settings-scte35source)를 `PASSTHROUGH`으로 설정합니다.
   + [https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-hlsgroupsettings-admarkers](https://docs.aws.amazon.com/mediaconvert/latest/apireference/jobs.html#jobs-prop-hlsgroupsettings-admarkers)를 포함하고 한 배열에 `ELEMENTAL_SCTE35` 또는 `ELEMENTAL`을 하나 또는 모두 나열합니다.

     선택한 각 설정을 사용하여 생성된 샘플 매니페스트는 [샘플 매니페스트: Elemental 광고 마커](sample-manifest-elemental-ad-markers.md) 및 [샘플 매니페스트: SCTE-35 향상 광고 마커](sample-manifest-scte-35-enhanced-ad-markers.md)(을)를 참조하세요.

   HLS 매니페스트를 SCTE-35 정보로 조건화하지 않으려면 `scte35Source`에서 기본 설정 `NONE`을 유지하고 `adMarkers`를 포함하지 않습니다.

   ```
     "outputGroups": [
       {
         "customName": "apple_hls",
         "outputGroupSettings": {
           "type": "HLS_GROUP_SETTINGS",
           "hlsGroupSettings": {
             "adMarkers": [
               "ELEMENTAL_SCTE35"
             ],
             ...
   
           }
         },
         "outputs": [
           {
             "extension": "m3u8",
             "nameModifier": "high",
             "outputSettings": {
               "hlsSettings": {
                 ...
               }
             },
             "containerSettings": {
               "container": "M3U8",
               "m3u8Settings": {
                 ...
                 "scte35Source": "PASSTHROUGH"
               }
   ```

1. 평상시처럼 작업을 제출합니다.

   프로그래밍 방식으로 AWS Elemental MediaConvert 작업을 제출하는 방법에 대한 자세한 내용은 [SDK 또는 AWS Elemental MediaConvert 사용 시작하기 및 API 사용 시작하기를 참조 AWS SDKs AWS CLI](https://docs.aws.amazon.com/mediaconvert/latest/apireference/custom-endpoints.html). [AWS Elemental MediaConvert](https://docs.aws.amazon.com/mediaconvert/latest/apireference/getting-started.html) 

# ESAM XML 신호 처리 알림의 예
<a name="example-esam-xml"></a>

이 ESAM XML 블록은 2개의 30초 광고 브레이크를 생성합니다(10초 경과 및 75초 경과 후 하나씩).

```
<?xml version="1.0" encoding="UTF-8"?>
<SignalProcessingNotification xmlns="urn:cablelabs:iptvservices:esam:xsd:signal:1" xmlns:sig="urn:cablelabs:md:xsd:signaling:3.0" xmlns:common="urn:cablelabs:iptvservices:esam:xsd:common:1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" acquisitionPointIdentity="ExampleESAM">

    <common:BatchInfo batchId="1">
      <common:Source xsi:type="content:MovieType" />
    </common:BatchInfo>

    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="1" signalPointID="10.00" action="create">
      <sig:NPTPoint nptPoint="10.00"/>
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="1" segmentTypeId="52" upidType="9" upid="1" duration="PT30S" segmentNumber="1" segmentsExpected="1"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>
    <ConditioningInfo acquisitionSignalIDRef="1" startOffset="PT10S" duration="PT30S"/>

    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="2" signalPointID="40.00" action="create">
      <sig:NPTPoint nptPoint="40.00" />
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="1" segmentTypeId="53" upidType="9" upid="2"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>

    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="3" signalPointID="75.00" action="create">
      <sig:NPTPoint nptPoint="75.00"/>
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="2" segmentTypeId="52" upidType="9" upid="3" duration="PT30S" segmentNumber="2" segmentsExpected="1"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>
    <ConditioningInfo acquisitionSignalIDRef="3" startOffset="PT75S" duration="PT30S"/>
    
    <ResponseSignal acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="4" signalPointID="105.00" action="create">
      <sig:NPTPoint nptPoint="105.00" />
      <sig:SCTE35PointDescriptor spliceCommandType="06">
        <sig:SegmentationDescriptorInfo segmentEventId="2" segmentTypeId="53" upidType="9" upid="4"/>
      </sig:SCTE35PointDescriptor>
    </ResponseSignal>

</SignalProcessingNotification>
```

# ESAM XML 매니페스트 확인 조건 알림의 예
<a name="example-esam-xml-manifest-conditioning"></a>

이 ESAM 매니페스트 확인 조건(MCC) XML 문서는 30초 광고 시간 2회에 대한 HLS 매니페스트 큐 태그를 생성합니다. 첫 번째는 시작 후 10초에 시작되고, 두 번째는 시작 후 75초에 시작됩니다. 이러한 큐 매니페스트 태그에는 다운스트림 클라이언트가 광고 교체 및 삽입에 사용할 수 있는 데이터도 포함됩니다. 첫 번째 광고 시간에서 이 MCC 문서로 생성된 출력에는 전송 스트림 파일에 포함된 SCTE-35 메시지가 포함되지만, 두 번째 광고 시간에서는 포함되지 않습니다.

첫 번째 광고 시간의 `dataPassThrough` 속성을 기록해 두세요. 이 속성이 있고 `"true"`로 설정된 경우 MediaConvert는 매니페스트뿐만 아니라 전송 스트림에도 SCTE-35 마커를 삽입합니다. 매니페스트에만 마커를 삽입하려는 광고 시간에는 `dataPassThrough` 속성을 제외하세요.

MediaConvert는 HLS 패키지에서만 ESAM을 사용한 매니페스트 컨디셔닝을 지원합니다.

```
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<ns2:ManifestConfirmConditionNotification xmlns:ns2="http://www.cablelabs.com/namespaces/metadata/xsd/confirmation/2" xmlns="http://www.cablelabs.com/namespaces/metadata/xsd/core/2" xmlns:ns3="http://www.cablelabs.com/namespaces/metadata/xsd/signaling/2">
  <ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="1" duration="PT30S" dataPassThrough="true"> 
  <ns2:SegmentModify>
      <ns2:FirstSegment>
        <ns2:Tag value="#EXT-X-CUE-OUT:4,SpliceType=VOD_DAI,Action=REPLACE, PAID=amazon.com/TEST2014020500000346,Acds=BA" />
      </ns2:FirstSegment>
      <ns2:SpanSegment>
        <ns2:Tag value="#EXT-X-CUE-OUT-CONT:${secondsFromSignal}/4, SpliceType=VOD_DAI,Action=REPLACE,PAID=amazon.com/TEST2014020500000346,Acds=BA" adapt="true" />
      </ns2:SpanSegment>
      <ns2:LastSegment>
        <ns2:Tag value="#EXT-X-CUE-IN:4,SpliceType=VOD_DAI" locality="after" adapt="true" />
      </ns2:LastSegment>
    </ns2:SegmentModify>
	</ns2:ManifestResponse>
  <ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="2"></ns2:ManifestResponse>
  <ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="3" duration="PT30S">  
  <ns2:SegmentModify>
      <ns2:FirstSegment>
        <ns2:Tag value="#EXT-X-OUT:4,SpliceType=VOD_DAI,Action=REPLACE, PAID=amazon.com/TEST2014020500000347,Acds=BA" />
      </ns2:FirstSegment>
      <ns2:SpanSegment>
        <ns2:Tag value="#EXT-X-OUT-CONT:${secondsFromSignal}/4, SpliceType=VOD_DAI,Action=REPLACE,PAID=amazon.com/TEST2014020500000346,Acds=BA" adapt="true" />
      </ns2:SpanSegment>
      <ns2:LastSegment>
        <ns2:Tag value="#EXT-X-CUE-IN:4,SpliceType=VOD_DAI" locality="after" adapt="true" />
      </ns2:LastSegment>
    </ns2:SegmentModify>
	</ns2:ManifestResponse>
	<ns2:ManifestResponse acquisitionPointIdentity="ExampleESAM" acquisitionSignalID="4"></ns2:ManifestResponse>
</ns2:ManifestConfirmConditionNotification>
```