SegmentTemplate 中的 media 屬性 - AWS Elemental MediaPackage

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

SegmentTemplate 中的 media 屬性

SegmentTemplate 屬性 (Property) 中的 media 屬性 (Attribute) 定義可讓播放裝置傳送區段請求的 URL。根據預設,此 URL 會使用$Number$變數來識別要求的特定區段。當播放裝置請求該區段時,它會將變數取代為區段的數字識別符。對於呈現中的第一個區段,請將此識別符以來自 SegmentTemplate 屬性的 startNumber 的值取代。每個額外的區段會以一的增量遞增。

在播放可用時,若改為以時間戳記識別區段,有些播放程式能夠更順利地導覽區段。為了支援此使用案例,在 media 屬性的 URL 中, MediaPackage 會使用 $Time$ 變數,而不是 $Number$。當播放裝置請求區段時,它會將此變數換成區段的可用開始時間。此開始時間可在 SegmentTimeline 物件中區段 (S) 屬性的 t 值中識別。如需範例,請參閱運作方式

$Time$變數的運作方式

透過 DASH 端點上的區段範本格式設定啟用$Time$變數,如中所述建立破折號端點。 AWS Elemental MediaPackage會執行下列動作:

  1. MediaPackage 產生 DASH 資訊清單時,它會在SegmentTemplate物件的media值中使用$Time$變數,如下列範例所示:

    <SegmentTemplate timescale="30" media="index_video_1_0_$Time$.mp4?m=1122792372" initialization="index_video_1_0_init.mp4?m=1122792372" startNumber="2937928">
  2. 當播放裝置要求區段時,它會使用media屬性中定義的 URL,並以要求之區段的可用性開始時間取代變數。

    重要

    取代該變數的值,必須是區段確切的 t 值。如果請求使用任意時間戳記,則 MediaPackage 不會尋求最接近的區段。

    以下是來自某個簡報的區段範本範例。它使用 $Time$ 變數。

    <SegmentTemplate timescale="30000" media="155_video_1_2_$Time$.mp4?m=1545421124" initialization="155_video_1_2_init.mp4?m=1545421124" startNumber="710"> <SegmentTimeline> <S t="255197799" d="360360" r="8"/> <S t="258441039" d="334334"/> </SegmentTimeline> </SegmentTemplate>

    第一個區段的請求 URL 為 155_video_1_2_255197799.mp4。有了 360360 的持續時間,下一個區段請求為 155_video_1_2_255558159.mp4,以此類推,一直到第九個區段。

    最後一個區段請求為 155_video_1_2_258441039.mp4