使用動態封裝器篩選您的指令清單
警告
Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS 淘汰指南。
當您將調適性比特率串流內容傳遞給裝置時,您有時需要發佈多個版本的指令清單,以以特定裝置功能或可用的網路頻寬為目標。 動態封裝器 可讓您指定篩選篩選出特定編解碼器、解析度、比特率和即時音訊播放軌組合的篩選條件。 篩選可移除建立多個復本的需求。 您只需要發佈新的 URL,並將一組特定的篩選器設定為目標裝置(iOS、Android、SmartTV 或瀏覽器)和網路功能(高頻寬、行動或低頻寬案例)。 在此情況下,用戶端可以透過查詢字串操作內容的串流(藉由指定可用的 資產篩選或帳戶篩選),並使用篩選來串流數據流的特定區段。
某些傳遞案例會要求您確定客戶無法存取特定追蹤。 例如,您可能不想將包含 HD 追蹤的指令清單發布至特定訂閱者層。 或者,您可能想要移除特定的調適性比特率 (ABR) 曲目,以降低傳遞至特定裝置的成本,而該裝置不會受益於其他播放軌。 在此情況下,您可以將預先建立的篩選條件清單與建立時 串流定位器 產生關聯。 用戶端接著無法操作內容的串流處理方式,因為內容是由 串流定位器所定義。
您可以結合篩選,在串流定位器上指定 篩選 + 用戶端在 URL 中指定的其他裝置特定篩選。 這個組合有助於限制其他曲目,例如元數據或事件串流、音頻語言或描述性曲目。
在串流上指定不同篩選的功能提供功能強大的 動態指令清單 操作解決方案,以針對目標裝置的多個使用案例為目標。 本主題說明與 動態指令清單 相關的概念,並提供您可以使用此功能的案例範例。
注意
動態指令清單不會變更資產和該資產的預設指令清單。
指令清單概觀
Azure 媒體服務支援 HLS、MPEG DASH 和 Smooth Streaming 通訊協定。 在 動態封裝中,串流用戶端指令清單(HLS 主要播放清單、DASH 媒體簡報描述 [MPD]和 Smooth Streaming)會根據 URL 中的格式選取器動態產生。 如需詳細資訊,請參閱 一般隨選工作流程中的傳遞通訊協定。
取得和檢查指令清單檔案
您可以根據串流 (即時或視訊隨選 [VOD]) 的播放軌屬性條件清單,包含在動態建立的指令清單中。 若要取得並檢查播放軌的屬性,您必須先載入 Smooth Streaming 指令清單。
監視視訊串流的比特率
您可以使用 Azure 媒體播放機示範頁面 來監視視訊串流的比特率。 示範頁面會在 [診斷] 索引卷標上顯示診斷資訊。
範例:查詢字串中具有篩選條件的URL
您可以將篩選套用至 ABR 串流通訊協定:HLS、MPEG-DASH 和 Smooth Streaming。 下表顯示一些具有篩選條件的 URL 範例:
協定 | 例 |
---|---|
HLS | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=m3u8-aapl,filter=myAccountFilter) |
MPEG DASH | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=mpd-time-csf,filter=myAssetFilter) |
Smooth Streaming | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(filter=myAssetFilter) |
轉譯篩選
您可以選擇將資產編碼為多個編碼配置檔(H.264 基準、H.264 高、AACL、AACH、Dolby Digital Plus)和多個品質比特率。 不過,並非所有用戶端裝置都支援您所有資產的配置檔和比特率。 例如,較舊的 Android 裝置僅支援 H.264 Baseline+AACL。 將較高的比特率傳送至無法取得好處的裝置會浪費頻寬和裝置計算。 這類裝置必須譯碼所有指定的資訊,才能縮小以顯示。
使用動態指令清單,您可以建立裝置配置檔(例如行動裝置、控制台或 HD/SD),並包含您想要成為每個配置檔一部分的曲目和品質。 這稱為轉譯篩選。 下圖顯示它的範例。
下圖頂端顯示沒有篩選之資產的 HLS 指令清單。 (它包含所有七個轉譯。在左下方,圖表會顯示套用名為 「ott」 的篩選條件的 HLS 指令清單。 “ott” 篩選條件會指定移除低於 1 Mbps 的所有比特率,因此回應中會去除下兩個質量等級。 在右下角,此圖表會顯示套用名為 「mobile」 之篩選的 HLS 指令清單。 「行動裝置」篩選器會指定移除解析度大於 720p 的轉譯,因此會移除兩個 1080p 轉譯。
拿掉語言播放軌
您的資產可能包含多種音訊語言,例如英文、西班牙文、法文等。 通常,Player SDK 會管理預設的曲目選取和每個用戶選取的可用音訊曲目。
開發這類播放器 SDK 是一項挑戰,因為它需要跨裝置特定播放機架構的不同實作。 此外,在某些平臺上,播放器 API 會受到限制,且不包含使用者無法選取或變更預設曲目的音訊選取功能。透過資產篩選器,您可以藉由建立只包含所需音訊語言的篩選來控制行為。
修剪資產的開頭
在大部分的即時串流事件中,操作員會在實際事件之前執行一些測試。 例如,在事件開始之前,它們可能會包含如下的平板:「程式會立即開始」。
如果程式正在封存,測試與平板數據也會封存並包含在簡報中。 不過,不應該向客戶端顯示這項資訊。 使用動態指令清單,您可以建立開始時間篩選,並從指令清單中移除不必要的數據。
從即時封存建立子資料列 (檢視)
許多即時活動長時間執行,即時封存可能包含多個事件。 即時活動結束後,廣播公司可能會想要將即時封存分割成邏輯程序的啟動和停止序列。
您可以分開發佈這些虛擬程式,而不需要在處理即時封存后,也不會建立個別的資產(這不會受益於 CDN 中現有的快取片段)。 這類虛擬專案的範例包括足球或籃球比賽的四分之一、棒球的局,或任何體育專案的個別活動。
透過動態指令清單,您可以使用開始/結束時間建立篩選,並在即時封存頂端建立虛擬檢視。
以下是篩選的資產:
調整簡報視窗 (DVR)
目前,Azure 媒體服務提供迴圈封存,可在 1 分鐘到 25 小時之間設定持續時間。 指令清單篩選可用來在封存頂端建立滾動 DVR 視窗,而不刪除媒體。 廣播公司想要提供有限的 DVR 視窗以即時邊緣移動,同時保留較大的封存視窗,有許多案例。 廣播公司可能想要使用 DVR 視窗外的數據來醒目提示剪輯,或者他們可能想要為不同的裝置提供不同的 DVR 視窗。 例如,大部分行動裝置不會處理大型 DVR 視窗(行動裝置可以有 2 分鐘的 DVR 視窗,桌面用戶端可以有 1 小時)。
調整 LiveBackoff (即時位置)
指令清單篩選可用來從即時程式的即時邊緣移除數秒。 篩選可讓廣播者在預覽發佈點上觀看簡報,並在檢視者收到數據流之前建立廣告插入點(由 30 秒後退)。 廣播公司接著可以及時將這些廣告推送至其客戶端架構,讓他們在廣告機會之前接收和處理資訊。
除了廣告支援之外,即時退場設定還可以用來調整檢視者的位置,以便當用戶端漂移並到達實時邊緣時,他們仍然可以從伺服器取得片段。 如此一來,用戶端就不會收到 HTTP 404 或 412 錯誤。
在單一篩選中結合多個規則
您可以在單一篩選中結合多個篩選規則。 例如,您可以定義「範圍規則」,以從即時封存中移除 slate,並篩選出可用的比特率。 當您套用多個篩選規則時,最終結果是所有規則的交集。
結合多個篩選 (篩選組合)
您也可以在單一 URL 中結合多個篩選。 下列案例示範您為何想要合併篩選:
- 您必須篩選行動裝置的視訊品質,例如 Android 或 iPad(以限制視訊品質)。 若要移除不必要的品質,您將建立適合裝置配置檔的帳戶篩選。 您可以針對相同媒體服務帳戶下的所有資產使用帳戶篩選,而不需要任何進一步關聯。
- 您也想要修剪資產的開始和結束時間。 若要進行修剪,您將建立資產篩選並設定開始/結束時間。
- 您要合併這兩個篩選條件。 如果沒有組合,您必須將品質篩選新增至修剪篩選,這會使篩選使用更加困難。
若要合併篩選,請將篩選名稱設定為以分號分隔格式的指令清單/播放清單 URL。 假設您有一個名為 MyMobileDevice 篩選質量的篩選條件,而您有另一個名為 MyStartTime 來設定特定開始時間。 您可以結合最多三個篩選條件。
考慮和限制
forceEndTimestamp、presentationWindowDuration和 liveBackoffDuration 的值不應該設定為 VOD 篩選條件。 它們僅用於即時篩選案例。
動態指令清單會在 GOP 界限中運作(主要畫面格),因此修剪具有 GOP 精確度。
您可以針對帳戶和資產篩選使用相同的篩選名稱。 資產篩選具有較高的優先順序,且會覆寫帳戶篩選。
如果您更新篩選條件,串流端點最多可能需要 2 分鐘的時間才能重新整理規則。 如果您使用篩選來提供內容(且您在 Proxy 和 CDN 快取中快取內容),更新這些篩選可能會導致播放機失敗。 建議您在更新篩選條件之後清除快取。 如果無法使用此選項,請考慮使用不同的篩選。
客戶必須手動下載指令清單,並剖析確切的開始時間戳和時間調整。
- 若要判斷資產中追蹤的屬性,取得並檢查指令清單檔案。
- 設定資產篩選時間戳屬性的公式為:
startTimestamp = <指令清單中的開始時間> + <預期的篩選開始時間> * 時幅
取得說明和支援
您可以連絡媒體服務,詢問問題,或遵循下列其中一種方法來追蹤我們的更新:
- Q & A
-
Stack Overflow。 使用
azure-media-services
標記問題。 - @MSFTAzureMedia 或使用 @AzureSupport 來要求支援。
- 透過 Azure 入口網站開啟支援票證。