篩選器

媒體服務標誌 v3


警告

Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南

當提供您的內容給客戶 (即時串流事件或點播視訊) 時,您的用戶端可能需要比預設資產資訊清單檔案中所述還大的彈性。 Azure 媒體服務根據預先定義的篩選器提供動態資訊清單

篩選器是伺服器端規則,可讓您的客戶執行下列動作:

  • 僅播放視訊的某個區段 (而非播放整個視訊)。 例如:
    • 縮小資訊清單以顯示即時事件的子剪輯 (「子剪輯篩選」),或者
    • 修剪視訊開頭 (「修剪視訊」)。
  • 只傳遞用來播放內容的裝置所支援的指定轉譯和/或指定的語言資料軌 (轉譯篩選)。
  • 調整簡報視窗 (DVR),以在播放程式中提供長度有限的 DVR 視窗 (「調整簡報視窗」)。

媒體服務可讓您為您的內容建立帳戶篩選器資產篩選器。 此外,您也可以讓預先建立的篩選器與串流定位器建立關聯。

篩選條件類型

資產篩選器有兩種:

  • 帳戶篩選器 (全域) - 可以套用到 Azure 媒體服務帳戶中的任何資產,存留期和帳戶的相同。
  • 資產篩選器 (本機) - 只能套用篩選器建立時與其相關聯的資產,存留期和資產的相同。

帳戶篩選器資產篩選器類型和定義/描述篩選器有完全相同的屬性。 除了在建立資產篩選器的時候,因為您需要指定要與篩選器相關聯之資產的名稱。

視您的案例而定,您會決定哪個類型的篩選器較合適 (資產篩選器或帳戶篩選器)。 帳戶篩選器適合裝置設定檔 (轉譯篩選),資產篩選器可用於修剪特定資產。

您可以使用下列屬性來描述篩選器。

名称 描述
firstQuality 篩選器的首次品質位元速率。
presentationTimeRange 即時活動指令清單的呈現時間範圍。 此屬性用於篩選資訊清單起始/結束點、簡報視窗長度,以及即時起始位置。
如需詳細資訊,請參閱 PresentationTimeRange
tracks 資料軌選取條件。 如需詳細資訊,請參閱資料軌

presentationTimeRange

將此屬性與資產篩選器搭配使用。 不建議使用 帳戶篩選來設定 屬性。

名稱 描述
startTimestamp 適用於點播視訊 (VoD) 或即時串流。
此 long 值代表資料流的絕對起始點。 系統會將此值四捨五入到最接近的下一個 GOP 起始。 由於單位是 timescale,因此 150000000 的 startTimestamp 等於 15 秒。
使用 startTimestamp 和 endTimestampp 來修剪之後要放入播放清單 (資訊清單) 的片段。
舉例來說,如果 startTimestamp=40000000 而 endTimestamp=100000000 (單位為預設 timescale),則產生的播放清單會包含 VoD 簡報第 4 秒到第 10 秒之間的片段。 如果片段跨越界限,則整個片段都會包含在資訊清單中。
endTimestamp 適用於點播視訊 (VoD)。
對於即時串流簡報,系統會以無訊息方式忽略它並在簡報結束時套用,然後資料流會成為 VoD。
這是一個代表簡報絕對結束時間的 Long 值 (四捨五入到最接近的下一個 GOP 起始)。 由於單位是 timescale,因此 1800000000 的 endTimestamp 等於 3 分鐘。
使用 startTimestamp 和 endTimestampp 來修剪之後要放入播放清單 (資訊清單) 的片段。
舉例來說,如果 startTimestamp=40000000 而 endTimestamp=100000000 (單位為預設 timescale),則產生的播放清單會包含 VoD 簡報第 4 秒到第 10 秒之間的片段。 如果片段跨越界限,則整個片段都會包含在資訊清單中。
timescale 適用於簡報時間範圍中的所有時間戳記和持續時間,指定為一秒內的增量數目。
預設值為 10000000,即 1 秒內有一千萬個增量,其中每個增量的長度為 100 奈秒。 不過,根據視訊來源,或如果您使用雲端編碼的即時活動,值可能會有所不同 (預設值為 90Khz,或視訊使用 90000。)
舉例來說,如果您想要將 startTimestamp 設在第 30 秒,您會把數值設為 300000000 (單位為預設 timescale)。 請務必檢查資產的指令清單,以確認影片播放軌的時幅在您設定的縮放比例中。 使用具有編碼方式的即時事件時,時幅可以位於 90Khz (90000) ,而音訊播放軌的 48khz (48000) 。
liveBackoffDuration 僅適用於即時串流。
此值定義用戶端可以搜尋的最新即時位置。
您可以使用此屬性來延遲即時播放位置,並為播放程式建立伺服器端緩衝區。
此屬性的單位是 timescale (見下文)。
即時輪詢持續時間的最大值是 300 秒 (3000000000)。
舉例來說,2000000000 表示最新可用內容比實際的即時邊緣延遲 20 秒。
presentationWindowDuration 僅適用於即時串流。
使用 presentationWindowDuration 以套用片段的滑動視窗,使片段包含在播放清單中。
此屬性的單位是 timescale (見下文)。
例如,設定 presentationWindowDuration=1200000000 以套用兩分鐘長的滑動視窗。 在即時邊緣 2 分鐘內的媒體都會包含在播放清單中。 如果片段跨越界限,則整個片段都會包含在播放清單中。 簡報視窗持續時間的最小值是 60 秒。
forceEndTimestamp 僅適用於即時串流。
表示是否需要 endTimestamp 屬性。 如果為 True,則必須指定 endTimestamp,否則系統會傳回「不正確的要求」代碼。
允許的值:false、true。

資料軌

根據應將您資料流的哪個資料軌 (即時串流或點播視訊) 包含至動態建立的資訊清單中,來指定篩選器資料軌屬性條件 (FilterTrackPropertyConditions) 清單。 篩選器是使用邏輯 ANDOR 運算。

篩選器資料軌屬性條件描述資料軌類型、值 (下表中所述) 和運算 (Equal、NotEqual)。

名称 描述
Bitrate 使用資料軌的位元速率來篩選。

最佳值是每秒以位為單位的比特率範圍。 例如,"0-2427000"。

注意:雖然您可以使用特定的比特率值,例如每秒 250000 (位) ,但不建議使用此方法,因為確切比特率可能會從一個資產變動到另一個資產。
FourCC 將資料軌的 FourCC 值用於篩選。

該值是轉碼器格式的第一個元素,如 RFC 6381 \(英文\) 中所指定。 目前支援下列轉碼器:
視訊:"avc1"、"hev1"、"hvc1"
音訊:"mp4a"、"ec-3"

若要判斷 Asset 中資料軌的 FourCC 值,請取得並檢查資訊清單檔案。
語言 使用資料軌的語言來篩選。

此值是您要包含之語言的標籤,如 RFC 5646 中所指定。 例如,"en"。
名稱 使用資料軌的名稱來篩選。
型別 使用資料軌的類型來篩選。

允許下列值:"video"、"audio" 或 "text"。

例如

下列範例會定義即時串流篩選器:

{
  "properties": {
    "presentationTimeRange": {
      "startTimestamp": 0,
      "endTimestamp": 170000000,
      "presentationWindowDuration": 9223372036854776000,
      "liveBackoffDuration": 0,
      "timescale": 10000000,
      "forceEndTimestamp": false
    },
    "firstQuality": {
      "bitrate": 128000
    },
    "tracks": [
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Audio"
          },
          {
            "property": "Language",
            "operation": "NotEqual",
            "value": "en"
          },
          {
            "property": "FourCC",
            "operation": "NotEqual",
            "value": "EC-3"
          }
        ]
      },
      {
        "trackSelections": [
          {
            "property": "Type",
            "operation": "Equal",
            "value": "Video"
          },
          {
            "property": "Bitrate",
            "operation": "Equal",
            "value": "3000000-5000000"
          }
        ]
      }
    ]
  }
}

在建立串流定位器時篩選您的 HLS 或 DASH 指令清單

媒體服務可讓您建立預先篩選的串流定位器,方法是在串流定位器實體的篩選屬性中傳入篩選屬性的集合。 這可讓您預先篩選串流定位器上的所有指令清單。 原始指令清單無法再透過此串流定位器取得,而且只有篩選後的回應可供要求來自已篩選串流定位器之 DASH 或 HLS URL 的用戶端存取。 這在您想要只發佈資產部分的情況中很有用,並防止用戶藉由操作 HLS 或 DASH 指令清單 URL 的查詢字串來存取資產的完整原始指令清單。

您可以在您的串流定位器上指定一個的資產或帳戶篩選器清單。 動態封裝程式會套用此篩選器清單與用戶端在 URL 中指定的篩選器。 此組合會產生動態資訊清單,其以您在串流定位器上指定的 URL 和篩選為基礎。

更新篩選器

篩選和串流定位器可以即時更新,但請記住,在前端網頁伺服器上更新任何更新最多可能需要 10 秒的時間,而且如果您要更新已發佈並已在生產環境中使用的相同 串流定位器 ,下游 CDN 快取內容可能會發生問題。

不建議更新與主動發佈的 串流定位器相關聯的篩選定義,特別是啟用CDN時。 串流伺服器和 CDN 中的內部快取可能會傳回過時的快取資料。

如果需要變更篩選定義,請考慮建立新的篩選,並將其新增至 串流定位器 URL,或發佈直接參考更新篩選條件的唯一新 串流定位器

取得說明及支援

您可以連絡媒體服務並提出問題,或遵循下列其中一種方法來追蹤我們的更新: