기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
DASH MPD 예제
다음 섹션에서는 DASH 오MPDs 및 개인화된 MPDs의 예를 제공합니다. 이러한 예제를 이해하면 MediaTailor 워크플로를 구성하고 문제를 해결하는 데 도움이 될 수 있습니다.
쿼리 파라미터가 DASH 매니페스트 및 세그먼트에 적용되는 방법에 대한 자세한 내용은 섹션을 참조하세요MediaTailor DASH 암시적 세션 초기화.
DASH MPD 구조 이해
Dynamic Adaptive Streaming over HTTP(DASH)는 미디어 프레젠테이션 설명(MPD) 매니페스트를 사용하여 스트리밍 콘텐츠를 제공합니다. MPD는 미디어 콘텐츠의 구조와 가용성을 설명하는 XML 문서입니다.
- MPD(미디어 프레젠테이션 설명)
-
MPD는 미디어 콘텐츠의 구조와 가용성을 설명하는 DASH 스트리밍의 기본 매니페스트 파일입니다. 여기에는 스트리밍 콘텐츠를 구성하는 기간, 적응 세트, 표현 및 세그먼트에 대한 정보가 포함되어 있습니다.
이 매니페스트 유형은 DASH 매니페스트, DASH MPD, 마스터 매니페스트(HLS와 비교 시) 또는 프레젠테이션 매니페스트 등 다양한 컨텍스트에서 다른 여러 이름으로도 알려져 있습니다.
MediaTailor 워크플로에서 MPD는 재생 요청의 진입점이며 광고 개인화가 시작되는 곳입니다.
- 기간
-
기간은 DASH 프레젠테이션의 시간 섹션입니다. 각 기간은 하나 이상의 적응 세트를 포함하며 미디어 시간 범위를 나타냅니다. 광고 삽입 워크플로에서는 일반적으로 별도의 기간을 사용하여 콘텐츠와 광고를 구분합니다.
MediaTailor 워크플로에서 기간은 기본 콘텐츠를 광고 콘텐츠와 분리하는 데 사용되며, 각 광고는 일반적으로 자체 기간으로 표시됩니다.
- AdaptationSet
-
AdaptationSet는 하나 또는 여러 미디어 콘텐츠 구성 요소의 교체 가능한 인코딩 버전 세트를 그룹화합니다. 예를 들어 한 AdaptationSet에는 여러 오디오 언어 옵션이 포함될 수 있습니다.
MediaTailor 워크플로에서는 콘텐츠와 광고 간에 일관된 미디어 유형을 유지하기 위해 광고 삽입 중에 AdaptationSets가 보존됩니다.
- 표시
-
표현은 AdaptationSet 내에서 미디어 콘텐츠의 특정 인코딩 버전입니다. 각 표현은 일반적으로 비트 전송률, 해상도 또는 기타 인코딩 파라미터가 다르므로 클라이언트가 네트워크 조건 및 디바이스 기능에 따라 가장 적합한 버전을 선택할 수 있습니다.
MediaTailor 워크플로에서 광고 기간의 표현은 원활한 시청 경험을 보장하기 위해 콘텐츠 기간의 표현과 최대한 가깝게 매칭됩니다.
DASH 매니페스트 유형에 대한 자세한 내용은 섹션을 참조하세요DASH 매니페스트 유형.
라이브 DASH MPD 예제
이 섹션에서는 라이브 DASH MPDs의 예를 제공합니다. 각 예제에서는 MediaTailor가 광고로 MPD를 개인화한 후 오리진 서버에서 수신한 MPD를 나열합니다.
DASH MPD 스플라이스 삽입 예제
스플라이스 삽입에 대한 DASH 오리진 MPD 예제
MPD의 다음 예제는 콘텐츠 오리진에서 DASH가 수신한 매니페스트의 광고 시간을 보여줍니다. 이 예제에서는 SpliceInsert
마커를 사용하여 광고 시간을 나타냅니다.
<Period start="PT173402.036S" id="46041"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="9450000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095"> <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1"> <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program> <scte35:BreakDuration autoReturn="true" duration="9450000"/> </scte35:SpliceInsert> <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/> <scte35:SegmentationTypeID segmentationType="52"/> <scte35:SegmentNum segmentNum="1"/> <scte35:SegmentsExpected segmentsExpected="1"/> </scte35:SegmentationDescriptor> </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=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501"> <SegmentTimeline> <S t="10395907501" d="60060" r="29"/> <S t="10397709301" d="45045"/> </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=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001"> <SegmentTimeline> <S t="16633452289" d="96256" r="3"/> <S t="16633837313" d="95232"/> <S t="16633932545" d="96256" r="4"/> <S t="16634413825" d="95232"/> <S t="16634509057" d="96256" r="5"/> <S t="16635086593" d="95232"/> <S t="16635181825" d="96256" r="4"/> <S t="16635663105" d="95232"/> <S t="16635758337" d="96256" r="5"/> <S t="16636335873" d="71680"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>
이 오리진 MPD 예제에서는 다음과 같습니다.
-
<EventStream>
요소에는 광고 시간을 나타내는 SCTE-35 마커가 포함되어 있습니다. -
<scte35:SpliceInsert>
요소는 광고 가능 여부에 대한 세부 정보를 제공합니다. -
<scte35:BreakDuration>
요소는 광고 중단 기간을 지정합니다. -
<AdaptationSet>
요소는 사용 가능한 비디오 및 오디오 스트림을 정의합니다.
스플라이스 삽입에 대한 DASH 맞춤형 MPD 예제
AWS Elemental MediaTailor 는 광고 사양으로 광고 시간을 개인화합니다. 개인화는 플레이어에서 수신되는 최종 사용자 데이터와 현재 진행 중인 광고 캠페인을 나타냅니다.
다음 예제에서는가 광고 시간을 AWS Elemental MediaTailor 개인화한 후 광고 시간을 보여줍니다.
<Period id="178443_1" start="PT96H15M30.25S"> <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL> <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> <SegmentTemplate startNumber="1" timescale="90000"/> <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920"> <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280"> <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng"> <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2"> <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>
이 개인화된 MPD 예제에서는 다음과 같습니다.
-
MediaTailor가 광고 콘텐츠에 대한 새 기간을 생성했습니다.
-
<BaseURL>
요소는 광고 콘텐츠 위치를 가리킵니다. -
<AdaptationSet>
요소는 콘텐츠와 유사한 구조를 유지합니다. -
<Representation>
요소는 광고 콘텐츠에 대해 다양한 품질 수준을 제공합니다.
DASH MPD 시간 신호 예제
시간 신호에 대한 DASH 오리진 MPD 예제
MPD의 다음 예제는 콘텐츠 오리진에서 DASH가 수신한 매니페스트의 광고 시간을 보여줍니다. 이 예제에서는 TimeSignal
마커를 사용하여 광고 시간을 나타냅니다.
<Period start="PT173402.036S" id="46041"> <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml"> <Event duration="9450000"> <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095"> <scte35:TimeSignal> <scte35:SpliceTime ptsTime="7835775000"/> </scte35:TimeSignal> <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000"> <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/> <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/> <scte35:SegmentationTypeID segmentationType="52"/> <scte35:SegmentNum segmentNum="1"/> <scte35:SegmentsExpected segmentsExpected="1"/> </scte35:SegmentationDescriptor> </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=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501"> <SegmentTimeline> <S t="10395907501" d="60060" r="29"/> <S t="10397709301" d="45045"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>
이 오리진 MPD 예제에서는 다음과 같습니다.
-
<scte35:TimeSignal>
요소가 대신 사용됩니다.<scte35:SpliceInsert>
-
는 광고 가능 여부에 대한 추가 정보를
<scte35:SegmentationDescriptor>
제공합니다.
시간 신호에 대한 DASH 맞춤형 MPD 예제
AWS Elemental MediaTailor 는 광고 사양으로 광고 시간을 개인화합니다. 개인화는 플레이어에서 수신되는 최종 사용자 데이터와 현재 진행 중인 광고 캠페인을 나타냅니다.
다음 예제에서는가 광고 시간을 AWS Elemental MediaTailor 개인화한 후 광고 시간을 보여줍니다.
<Period id="178443_1" start="PT96H15M30.25S"> <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL> <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1"> <SegmentTemplate startNumber="1" timescale="90000"/> <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920"> <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000"> <SegmentTimeline> <S d="180000" r="13" t="0"/> <S d="176940" t="2520000"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet> </Period>
시간 신호에 대한 개인화된 MPD는 스플라이스 삽입과 유사하며 MediaTailor는 광고 콘텐츠에 대한 새 기간을 생성합니다.
VOD DASH MPD 예제
이 섹션에서는 온디맨드 비디오(VOD) DASH MPDs의 예를 제공합니다. 각 예제에서는 MediaTailor가 광고로 MPD를 개인화한 후 오리진 서버에서 수신한 MPD를 나열합니다.
VOD DASH MPDs 라이브 MPDs와 동일한 구조를 따르지만 일반적으로 MPD 요소에 type="static"
속성이 있으며 다양한 콘텐츠 세그먼트에 대해 여러 기간을 포함할 수 있습니다.
VOD DASH MPDs의 예는의 MediaTailor 설명서를 참조하세요DASH 광고 마커.
개인 맞춤형 MPDs의 주요 차이점
MediaTailor가 DASH MPDs 개인화하면 다음과 같은 몇 가지 중요한 변경이 이루어집니다.
- 기간 처리
-
-
광고 콘텐츠에 대한 새 기간이 생성됩니다.
-
기간 시작 시간은 타임라인 연속성을 유지하기 위해 조정됩니다.
-
SCTE-35 마커가 있는 EventStream 요소가 처리 및 제거됩니다.
-
- AdaptationSet 및 Representation 처리
-
-
광고 기간의 AdaptationSets는 AdaptationSets 콘텐츠와 일치하도록 생성됩니다.
-
광고 콘텐츠의 다양한 품질 수준에 대해 표현이 생성됩니다.
-
광고 콘텐츠를 가리키도록 SegmentTemplate 요소가 업데이트되었습니다.
-
이러한 변경 사항을 이해하면 MediaTailor 워크플로의 문제를 해결하고 CDN 및 플레이어의 적절한 구성을 보장하는 데 도움이 될 수 있습니다.
관련 주제
DASH MPDs MediaTailor
-
DASH 매니페스트 유형 - DASH 매니페스트 유형에 대한 자세한 설명
-
CDN을 사용하여 MediaTailor 광고 개인화 및 콘텐츠 전송 최적화 - MediaTailor에서 CDN을 사용하는 방법에 대한 정보
-
MediaTailor 광고 삽입 작동 방식 - MediaTailor 광고 삽입 작동 방식 개요