

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

# VOD 소스 작업
<a name="channel-assembly-working-vod-sources"></a>

VOD 소스는 소스 위치에 추가하는 비디오 또는 팟캐스트 에피소드와 같은 단일 콘텐츠를 나타냅니다. 하나 이상의 VOD 소스를 소스 위치에 추가한 다음 채널을 생성한 후 각 VOD 소스를 프로그램에 연결합니다.

각 VOD 소스에는 하나 이상의 *패키지 구성*이 있어야 합니다. 패키지 구성은 VOD 소스의 패키지 형식, 매니페스트 위치 및 소스 그룹을 지정합니다. 채널을 생성할 때 패키지 구성의 소스 그룹을 사용하여 채널에 해당 출력을 생성합니다. 예를 들어 소스가 HLS와 DASH의 두 가지 형식으로 패키징된 경우 DASH용과 HLS용의 두 가지 패키지 구성을 생성합니다. 그런 다음 각 패키지 구성에 대해 하나씩 두 개의 채널 출력을 생성합니다. 각 채널 출력은 재생 요청에 사용되는 엔드포인트를 제공합니다. 따라서 앞의 예제를 사용하여 채널은 HLS 재생 요청에 대한 엔드포인트와 DASH 재생 요청에 대한 엔드포인트를 제공합니다.

매니페스트의 광고 마커 오프셋을 자동으로 감지하려면 각 광고 마커가 모든 패키지 구성에서 동일한 오프셋에 나타나고 지속 시간이 0이어야 합니다. HLS의 경우 MediaTailor는 `DATERANGE` 및` EXT-X-CUE-OUT` 태그를 감지합니다. DASH의 경우 HLS는 각 태그 내에서 첫 번째 이벤트 `EventStream` 태그를 감지합니다.

다음 예제에서는 지속 시간이 0.0인 `DATERANGE` 태그로 인해 12,000ms의 오프셋에서 광고 중단 기회가 감지됩니다. 오프셋이 0ms인 첫 번째 `DATERANGE` 태그는 지속 시간이 10.0이므로 감지되지 않습니다.

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=10.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-DATERANGE:ID="1001",START-DATE="2021-09-16T23:51:05.249Z",DURATION=0.0,SCTE35-OUT=0xFC302500000003289800FFF01405000003E97FEFFE1D381BD8FE000DBBA00001010100000FD2B275
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

다음 예제에서는 `EXT-X-CUE-OUT` 태그의 지속 시간이 0이고 바로 뒤에 `EXT-X-CUE-IN` 태그가 오기 때문에 0ms의 오프셋에서 광고 중단 기회가 감지됩니다. 두 번째 `EXT-X-CUE-OUT`/`EXT-X-CUE-IN` 페어는 지속 시간이 10이므로 감지되지 않습니다.

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_0.ts
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_1.ts
#EXT-X-CUE-OUT:10
...
#EXT-X-CUE-IN
#EXTINF:6.000,
../../../719f911124e0495cbb067c91c1d6c298/1785a16ca14d4c2884781f25333f6766/index_1_2.ts
```

다음 예제에서는의 첫 번째 이벤트가 PT0.000S부터 시작되는 기간에 `EventStream` 발생하기 때문에 0ms의 오프셋에서 광고 중단 기회가 감지됩니다. `Event`의 두 번째 `EventStream`는 감지되지 않습니다.

```
<Period start="PT0.000S" id="9912561" duration="PT29.433S">
<EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
<Event duration="0">
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
<Event duration="0"> 
  <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="1241950593" tier="4095">
    <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
      <scte35:Program><scte35:SpliceTime ptsTime="3552273000"/></scte35:Program>
      <scte35:BreakDuration autoReturn="true" duration="2700000"/>
    </scte35:SpliceInsert>
  </scte35:SpliceInfoSection>
</Event>
</EventStream>
  ...
</Period>
```