翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Elemental MediaPackage の複数期間 DASH
AWS Elemental MediaPackage では、VOD とライブの両方で DASH マニフェストに複数期間を挿入できます。
期間とは、DASH マニフェストのコンテンツのひとかたまりであり、開始時間と再生時間で定義されます。マニフェストのデフォルトでは、その全体が 1 つの期間に含まれます。MediaPackage では、DASH マニフェストを複数の期間に分けることで、広告とメインコンテンツ間の境界を指定できます。例えば、AWS Elemental MediaTailor のようなダウンストリーム広告サービスを含む MediaPackage を使用している場合は、MediaPackage の MPEG-DASH エンドポイントで、[Trigger new period on ads] を選択します。このオプションにより、DASH マニフェストが複数の期間でフォーマットされる必要があることを MediaPackage に指示します。
AWS Elemental MediaTailor の詳細については、AWS Elemental MediaTailor ユーザーガイドを参照してください。
-
MediaPackage の DASH-ISO エンドポイントの詳細については、「DASH エンドポイントの作成」を参照してください。
-
MediaPackage での複数期間の DASH の動作については、以下の仕組みに関するセクションを参照してください。
複数期間 DASH の仕組み
複数期間の DASH の機能を使用するには、SCTE-35 広告マーカーメッセージを MediaPackage への入力に含める必要があります。これらのメッセージにより、MediaPackage に期間の境界を作成するポイントを通知します。MediaPackage でそれらのメッセージを処理する方法は次のとおりです。
-
MediaPackage が入力ソースから SCTE-35 のメッセージを検出します。
-
MediaPackage は、SCTE-35 メッセージの属性を使用して、メインコンテンツの最後と広告の間のどの部分に境界があるかを計算します。この計算式は (scte35
ptsAdjustment
+ scte35ptsTime
) / (EventStreamtimescale
) となります。次の例では、44.075 秒の時点で期間が開始されています。これは、(183003 + 3783780) / 90000 = 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>
-
MediaPackage は
EventStream
とEvent
、ならびに追加情報を伴うscte35
タグをマニフェストに挿入します。さらに先の例のように、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>
TimeSignal
の代わりにSpliceInsert
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 マーカーを検索し、それらのマーカーに基づいて広告を挿入します。