AWS Elemental MediaPackage의 여러 기간 DASH - AWS Elemental MediaPackage

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

AWS Elemental MediaPackage의 여러 기간 DASH

VOD와 라이브 모두에서 DASH 매니페스트에 여러 기간을 삽입하는 기능을 AWS Elemental MediaPackage에서 사용할 수 있습니다.

기간은 시작 시간 및 지속 시간으로 정의되는 DASH 매니페스트의 콘텐츠 청크입니다. 기본적으로 전체 매니페스트는 하나의 기간에 포함되지만 MediaPackage는 광고와 기본 콘텐츠 간의 경계를 나타내기 위해 DASH 매니페스트를 여러 기간으로 분할할 수 있습니다. 예를 들어, AWS Elemental MediaTailor 같은 다운스트림 광고 서비스와 함께 MediaPackage를 사용하는 경우 MediaPackage의 MPEG-DASH 엔드포인트에서 광고의 새 기간 트리거를 선택합니다. 이 옵션은 여러 기간으로 DASH 매니페스트의 형식을 지정하도록 MediaPackage에 알립니다.

  • AWS Elemental MediaTailor에 대한 자세한 내용은 AWS Elemental MediaTailor 사용 설명서를 참조하십시오.

  • MediaPackage의 DASH-ISO 엔드포인트에 대한 자세한 내용은 DASH 엔드포인트 생성 단원을 참조하세요.

  • MediaPackage에서 여러 기간 DASH가 작동하는 방식에 대한 자세한 내용은 다음 작동 방식 단원을 참조하세요.

여러 기간 DASH의 작동 방식

여러 기간 DASH 기능을 사용하려면 MediaPackage의 입력에 SCTE-35 광고 마커 메시지가 있어야 합니다. 이러한 메시지는 기간 경계를 생성할 위치를 MediaPackage에 알립니다. MediaPackage가 이러한 메시지를 처리하는 방식은 다음과 같습니다.

  1. MediaPackage가 입력 소스에서 SCTE-35 메시지를 감지합니다.

  2. MediaPackage가 SCTE-35 메시지의 속성을 사용하여 기본 콘텐츠의 끝과 광고 간의 경계 위치를 계산합니다. 이 계산은 (scte35 ptsAdjustment + scte35 ptsTime) / (EventStream timescale)입니다.

    다음 예제에서 (183003 + 3783780) / 90000 = 44.075이므로 기간은 44.075초에 시작합니다.

    <Period start="PT44.075S" id="21"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095"> <scte35:SpliceInsert spliceEventId="1000" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="7" availNum="1" availsExpected="4"> <scte35:Program><scte35:SpliceTime ptsTime="3783780"/></scte35:Program> </scte35:SpliceInsert> </scte35:SpliceInfoSection> </Event> </EventStream> . . </Period>
  3. 앞의 예제에서처럼 MediaPackage는 EventStream, Eventscte35 태그를 추가 정보와 함께 매니페스트에 삽입하고 Period 태그로 광고 기간을 묶습니다. MediaPackage는 첫 번째 광고 기간 앞에 있는 모든 적응 세트를 한 기간으로 그룹화하고, 다음 SCTE-35 마커가 나타날 때까지 광고 뒤에 있는 모든 후속 적응 세트를 한 기간으로 그룹화합니다. 다음은 여러 기간이 있는 전체 매니페스트 예제입니다. 이 예제에서는 SpliceInsert SCTE-35 광고 마커를 사용합니다.

    <?xml version="1.0" encoding="utf-8"?> <MPD> <Period start="PT0.000S" id="0" duration="PT44.075S"> <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528413503" initialization="index_video_1_0_init.mp4?m=1528413503" startNumber="6" presentationTimeOffset="0"> <SegmentTimeline> <S t="361301" d="60060" r="15"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng"> <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2"> <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528413503" initialization="index_audio_2_0_init.mp4?m=1528413503" startNumber="6" presentationTimeOffset="0"> <SegmentTimeline> <S t="578305" d="96256" r="3"/> <S t="963329" d="95232"/> <S t="1058561" d="96256" r="5"/> <S t="1636097" d="95232"/> <S t="1731329" d="96256" r="3"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period> <Period start="PT44.075S" id="21"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095"> <scte35:SpliceInsert spliceEventId="1000" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="7" availNum="1" availsExpected="4"> <scte35:Program><scte35:SpliceTime ptsTime="3783780"/></scte35:Program> </scte35:SpliceInsert> </scte35:SpliceInfoSection> </Event> </EventStream> <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528413503" initialization="index_video_1_0_init.mp4?m=1528413503" startNumber="22" presentationTimeOffset="1322261"> <SegmentTimeline> <S t="1322261" d="60060" r="13"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng"> <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2"> <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528413503" initialization="index_audio_2_0_init.mp4?m=1528413503" startNumber="22" presentationTimeOffset="2115617"> <SegmentTimeline> <S t="2116353" d="96256"/> <S t="2212609" d="95232"/> <S t="2307841" d="96256" r="5"/> <S t="2885377" d="95232"/> <S t="2980609" d="96256" r="4"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period> </MPD>

    입력에 SpliceInsert 대신 TimeSignal SCTE-35 광고 마커가 있는 경우 광고 기간 내의 EventStream은 다음과 비슷합니다.

    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095"> <scte35:TimeSignal> <scte35:SpliceTime ptsTime="1350000"/> </scte35:TimeSignal> <scte35:SegmentationDescriptor segmentationEventId="1073741825" segmentationEventCancelIndicator="false" segmentationDuration="450000"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="1" segmentationUpidLength="3" segmentationTypeId="48" segmentNum="0" segmentsExpected="0">012345</scte35:SegmentationUpid> </scte35:SegmentationDescriptor> </scte35:SpliceInfoSection> </Event> </EventStream>

    또한 MediaPackage는 scte35:SpliceInsert 메시지를 개별 비디오 세그먼트에 메타데이터로 포함시킵니다.

다운스트림 광고 서비스를 사용하는 경우 해당 서비스는 MediaPackage가 제공하는 매니페스트에서 SCTE-35 마커를 찾고 해당 마커를 기반으로 광고를 삽입합니다.