AWS Elemental MediaPackage 中的多重期間 DASH - AWS Elemental MediaPackage

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS Elemental MediaPackage 中的多重期間 DASH

在中提供在 DASH 資訊清單中為 VOD 和即時通訊清單插入多個句點的功能。AWS Elemental MediaPackage

期間是 DASH 資訊清單中的一種內容區塊,由開始時間和持續時間所定義。根據預設,整個資訊清單包含在一個期間,但 MediaPackage 可以將 DASH 資訊清單分割為多個期間,以指出廣告與主要內容之間的界限。舉例來說,如果您要 MediaPackage 搭配下游廣告服務 (例如) 使用AWS Elemental MediaTailor,請在中的 MPEG-DASH 端點上選擇 [觸發新的廣告期間]。 MediaPackage此選項告 MediaPackage 訴 DASH 資訊清單將使用多個句點進行格式化。

多週期 DASH 如何工作

若要使用多週期 DASH 功能, MediaPackage 必須輸入 SCTE-35 廣告標記訊息。這些訊息會告知 MediaPackage 要在何處建立週期邊界。這是 MediaPackage 處理這些消息的方式:

  1. MediaPackage 偵測來自輸入來源的 SCTE-35 訊息。

  2. 使用 SCTE-35 訊息的屬性, MediaPackage 計算主要內容結尾與廣告之間的界限。此計算方式為 (節點 35 ptsAdjustment + 節點 35)/(ptsTime)。EventStream timescale

    在下列範例中,該期間的開始為 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>
  3. MediaPackage 將包含其他資訊的EventStreamEvent、和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 SCTE-35 廣告標記而非廣告標記SpliceInsert,則在廣告期間 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訊息做為中繼資料嵌入個別影片片段中。

如果您使用的是下游廣告服務,該服務會在資訊清單中尋找 SCTE-35 標記,以根據這些標記 MediaPackage 提供並插入廣告。