DASH MPD の例 - AWS Elemental MediaTailor

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 は再生リクエストのエントリポイントであり、広告パーソナライゼーションが開始される場所です。

期間

Period は、DASH プレゼンテーションの一時的なセクションです。各期間には 1 つ以上の適応セットが含まれ、メディア時間の範囲を表します。広告挿入ワークフローでは、通常、個別の期間を使用してコンテンツと広告を区別します。

MediaTailor ワークフローでは、期間を使用してメインコンテンツを広告コンテンツから分離します。各広告は通常、独自の期間で表されます。

AdaptationSet

AdaptationSet は、1 つまたは複数のメディアコンテンツコンポーネントの交換可能なエンコードされたバージョンのセットをグループ化します。たとえば、1 つの AdaptationSet には複数のビデオ品質レベルが含まれ、もう 1 つの AdaptationSet には複数のオーディオ言語オプションが含まれる場合があります。

MediaTailor ワークフローでは、コンテンツと広告の間で一貫したメディアタイプを維持するために、広告挿入中に AdaptationSets が保持されます。

表記

表現は、AdaptationSet 内のメディアコンテンツの特定のエンコードされたバージョンです。各表現は通常、ビットレート、解像度、またはその他のエンコーディングパラメータが異なるため、クライアントはネットワーク条件とデバイス機能に基づいて最適なバージョンを選択できます。

MediaTailor ワークフローでは、広告期間の表現は、コンテンツ期間の表現と可能な限り一致させて、スムーズな視聴体験を実現します。

DASH マニフェストタイプの詳細については、「」を参照してくださいDASH マニフェストタイプ

Live DASH MPD の例

このセクションでは、ライブ DASH MPDs。各例では、オリジンサーバーから受信した MPD と、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 は、スプライス挿入の MPD と似ており、MediaTailor は広告コンテンツの新しい期間を作成します。

VOD DASH MPD の例

このセクションでは、ビデオオンデマンド (VOD) DASH MPDs。各例では、オリジンサーバーから受信した MPD と、MediaTailor が広告で MPD をパーソナライズした後の MPD を一覧表示します。

VOD DASH MPDsライブ MPDs と同じ構造に従いますが、通常は MPD 要素に type="static" 属性があり、異なるコンテンツセグメントに複数の期間が含まれる場合があります。

VOD DASH MPDs の例については、 の MediaTailor ドキュメントを参照してくださいDASH 広告マーカー

パーソナライズMPDs の主な違い

MediaTailor が DASH MPDs をパーソナライズすると、いくつかの重要な変更が行われます。

期間処理
  • 広告コンテンツ用に新しい期間が作成されます

  • タイムラインの継続性を維持するために、期間の開始時刻が調整されます

  • SCTE-35 マーカーを持つ EventStream 要素が処理および削除されます

AdaptationSet と表現の処理
  • 広告期間の AdaptationSets は、コンテンツ AdaptationSets に一致するように作成されます。

  • 広告コンテンツのさまざまな品質レベルに対して表現が作成されます。

  • SegmentTemplate 要素は、広告コンテンツを指すように更新されます

これらの変更を理解することで、MediaTailor ワークフローの問題のトラブルシューティングを行い、CDN とプレイヤーの適切な設定を確保できます。

DASH MPDs と MediaTailor の詳細については、以下のトピックを参照してください。