篩選器
警告
Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南。
當提供您的內容給客戶 (即時串流事件或點播視訊) 時,您的用戶端可能需要比預設資產資訊清單檔案中所述還大的彈性。 Azure 媒體服務根據預先定義的篩選器提供動態資訊清單。
篩選器是伺服器端規則,可讓您的客戶執行下列動作:
- 僅播放視訊的某個區段 (而非播放整個視訊)。 例如:
- 縮小資訊清單以顯示即時事件的子剪輯 (「子剪輯篩選」),或者
- 修剪視訊開頭 (「修剪視訊」)。
- 只傳遞用來播放內容的裝置所支援的指定轉譯和/或指定的語言資料軌 (轉譯篩選)。
- 調整簡報視窗 (DVR),以在播放程式中提供長度有限的 DVR 視窗 (「調整簡報視窗」)。
媒體服務可讓您為您的內容建立帳戶篩選器與資產篩選器。 此外,您也可以讓預先建立的篩選器與串流定位器建立關聯。
篩選條件類型
資產篩選器有兩種:
帳戶篩選器和資產篩選器類型和定義/描述篩選器有完全相同的屬性。 除了在建立資產篩選器的時候,因為您需要指定要與篩選器相關聯之資產的名稱。
視您的案例而定,您會決定哪個類型的篩選器較合適 (資產篩選器或帳戶篩選器)。 帳戶篩選器適合裝置設定檔 (轉譯篩選),資產篩選器可用於修剪特定資產。
您可以使用下列屬性來描述篩選器。
名称 | 描述 |
---|---|
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) 清單。 篩選器是使用邏輯 AND 和 OR 運算。
篩選器資料軌屬性條件描述資料軌類型、值 (下表中所述) 和運算 (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,或發佈直接參考更新篩選條件的唯一新 串流定位器 。
取得說明及支援
您可以連絡媒體服務並提出問題,或遵循下列其中一種方法來追蹤我們的更新:
- 問與答
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站 開啟支援票證。