清單篩選 - AWS Elemental MediaPackage

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

清單篩選

AWS Elemental MediaPackage 可透過資訊清單篩選,根據您在附加至播放請求的查詢中指定的參數動態產生用戶端資訊清單。這可讓您從單一端點執行各種操作,例如限制觀眾存取優質 4K HEVC 內容,或鎖定特定裝置類型和音訊取樣率範圍等。之前,您必須設定多個端點才能完成此行為。 MediaPackage 現在提供了一種符合成本效益的方式,可在同一個端點上動態產生不同的用戶端

使用資訊清單篩選條件

當您使用資訊清單篩選條件時,產生的資訊清單只會包含符合您在查詢中指定之特性音訊和影片串流。如果沒有使用資訊清單篩選條件,則所有內嵌串流都會出現在端點輸出串流中。但如果您已經為端點設定串流篩選條件,例如最小影片位元率,此情況則屬例外。在這種情況下,資訊清單篩選條件會套用在串流篩選條件之後,這可能會扭曲您的輸出,因此不建議使用。

資訊清單篩選可用於以下支援的所有端點類型 MediaPackage:

  • Apple HLS

  • DASH-ISO

  • Microsoft Smooth Streaming

  • CMAF

若要使用資訊清單篩選,請將aws.manifestfilter查詢參數附加至播放要求 MediaPackage。 MediaPackage 評估查詢,並根據這些查詢參數提供用戶端資訊清單。資訊清單查詢區分大小寫,字數上限為 1024 個字元。如果查詢格式不正確,或者沒有符合查詢參數的串流,則 MediaPackage 會傳回不完整或空白的資訊清單。如需查詢語法,請參閱下一節。

注意

如果您使用的是蘋果 HLS 或 CMAF 端點,則適用特殊條件。如需這些條件的資訊,請參閱 HLS 和 CMAF 資訊清單的特殊條件

查詢語法

基本查詢參數是 aws.manifestfilter,後接可選參數名稱和值對。若要建構查詢,?aws.manifestfilter=請附加到 MediaPackage 端點 URL 的結尾,後面接著參數名稱和值。如需所有可用參數的清單,請參閱 資訊清單篩選條件查詢參數

Apple HLS 篩選條件查詢看起來可能像這樣:

https://example-mediapackage-endpoint.mediapackage.us-west-2.amazonaws.com/out/v1/examplemediapackage/index.m3u8?aws.manifestfilter=audio_sample_rate:0-44100;video_bitrate:0-2147483647;video_codec:h265;audio_language:fr,en-US,de

下表列出查詢語法。

查詢字串元件 描述
? 標記查詢開頭的限制字元。
aws.manifestfilter= 基本查詢,後接名稱和值對組成的參數。如需所有可用參數的清單,請參閱 資訊清單篩選條件查詢參數
: 用於將參數名稱與值相關聯。例如 parameter_name:value
; 在包含多個參數的查詢中分隔參數。例如 parameter1_name:value;parameter2_name:minValue-maxValue
, 分隔值的清單。例如 parameter_name:value1,value2,value3。列表中以逗號分隔的值代表 OR 關係。
- 用於定義參數的最小值 - 最大值範圍。例如 audio_sample_rate:0-44100。在範圍中使用數值時,數值會包括在範圍定義中。這代表串流必須大於或等於最小值,並且小於或等於最大值。使用範圍時,最小值和最大值為必要屬性。支援的範圍值為 0 - 2147483647
注意

如果您使用 Amazon CloudFront 做為 CDN,則可能需要設定其他組態。如需詳細資訊,請參閱 Configure cache behavior for all endpoints (設定所有端點的快取行為)。

資訊清單篩選條件查詢參數

MediaPackage 支援下列查詢參數。

類別 名稱 描述 範例
音訊 audio_bitrate
  • 以每秒位元數為單位的音訊位元率。

  • 可接受的值:兩個整數與破折號的彙總,定義所包含的範圍。支援的範圍值為 0 - 2147483647

stream.mpd?aws.manifestfilter=audio_bitrate:0-2147483647
音訊 audio_channels
  • 音訊聲道的數目。

  • 可接受的值:兩個整數與破折號的彙總,定義所包含的範圍。支援的範圍值為 1 - 32767

stream.mpd?aws.manifestfilter=audio_channels:1-8
音訊 audio_codec
  • 音訊轉碼器類型。

  • 可接受的值AACLAACHAC-3EC-3。您必須包含 AC-3EC-3-

    區分大小寫。

stream.mpd?aws.manifestfilter=audio_codec:AACL,AC-3
音訊 audio_language
  • 音訊語言或從編碼器傳遞衍生的功能代碼。

  • 可接受的值:任意字串,例如兩個字元或四個字元的 ISO-639-1 語言代碼。您必須使用為編碼器設定的相同語言字串。

    區分大小寫。

stream.mpd?aws.manifestfilter=audio_language:fr,en-US,de
音訊 audio_sample_rate
  • 以 Hz 為單位的音訊取樣率。

  • 可接受的值:兩個整數與破折號的彙總,定義所包含的範圍。支援的範圍值為 0 - 2147483647

stream.mpd?aws.manifestfilter=audio_sample_rate:0-44100
字幕 subtitle_language
  • 字幕語言或從編碼器直通衍生的功能代碼。

  • 可接受的值:任意字串,例如兩個字元或四個字元的 ISO-639-1 語言代碼。您必須使用為編碼器設定的相同語言字串。

    區分大小寫。

stream.mpd?aws.manifestfilter=subtitle_language:en-US, hi
影片 trickplay_height
  • 詭計播放影像的高度 (以像素為單位)。這僅適用於 I 幀和基於圖像的技巧播放。

    注意

    如果您將此參數與 I-frame 一起使用,則只能使用技巧,trickplay_height並且video_height應該具有類似的值。如果值不相同,則只有 I-frame 軌道可能會從資訊清單中移除。

  • 在 VOD 上進行 DASH 並排之前,會套用trickplay_height篩選器。

  • 可接受的值:兩個整數與破折號的彙總,定義所包含的範圍。支援的範圍值為 1 - 2147483647

stream.mpd?aws.manifestfilter=trickplay_height:200-1200
影片 trickplay_type
  • 騙局軌道類型。您可以在 iframe 或圖像欺騙軌道上進行過濾,或者使用該值none過濾掉所有欺騙軌道(iframe 和圖像)。

  • 可接受的值iframeimagenone

    區分大小寫。

stream.mpd?aws.manifestfilter=trickplay_type:iframe
影片 video_bitrate
  • 以每秒位元數為單位的視訊位元率。

    注意

    如果您使用這個參數,我們建議您只使用 video_bitrate 篩選條件參數來設定影片位元率。不要也通過 MediaPackage 控制台或設置最小和最大視頻比特率AWS CLI。video_bitrate 篩選條件會套用至在端點上建立的影片位元率設定。如果您在主控台或 AWS CLI 中使用參數並設定位元率,您的輸出可能會扭曲。

  • 可接受的值:兩個整數與破折號的彙總,定義所包含的範圍。支援的範圍值為 0 - 2147483647

  • 注意

    您不能將此參數與欺騙播放流一起使用。

stream.mpd?aws.manifestfilter=video_bitrate:0-2147483647
影片 video_codec
  • 視訊轉碼器類型。

  • 可接受的值H264H265

    區分大小寫。

stream.mpd?aws.manifestfilter=video_codec:h264
影片 video_dynamic_range
  • 視頻動態範圍。

  • 可接受的值hdr10hlgsdr

    區分大小寫。

stream.mpd?aws.manifestfilter=video_dynamic_range:hdr10
影片 video_framerate
  • NTSC 格式的視訊影格速率範圍。

  • 可接受的值:兩個浮點數與破折號的彙總,定義所包含的範圍。每個數字最多可以有三個選用的分數值。例如 29.9729.764。支援的範圍值為 1 - 999.999

stream.mpd?aws.manifestfilter=video_framerate:23.976-30
影片 video_height
  • 以像素為單位的視訊高度。

    注意

    如果您將此參數與 I-frame 一起使用,則只能使用技巧,trickplay_height並且video_height應該具有類似的值。如果值不相同,則只有 I-frame 軌道可能會從資訊清單中移除。

  • 可接受的值:兩個整數與破折號的彙總,定義所包含的範圍。支援的範圍值為 1 - 32767

stream.mpd?aws.manifestfilter=video_height:720-1080

資訊清單篩選範例

這些是資訊清單篩選範例。

範例 1:針對支援 AVC 和 44.1k 音訊取樣率的播放器

觀眾正在只能支援 AVC 和 44.1k 音頻採樣率的設備上播放內容。您可以設置 video_codecaudio_sample_rate 篩選掉不符合這些需求的串流。

?aws.manifestfilter=audio_sample_rate:0-44100;video_codec:h264

範例 2:限制 4k HEVC 內容

您的 4K HEVC 串流為 15 Mbps,而所有其他串流都低於 9 Mbps。若要從串流集排除 4K 串流,請設定每秒 9,000,000 位元的閾值,以篩選出較高的位元率。

?aws.manifestfilter=video_bitrate:0-9000000

範例 3:包含每秒 23.976 至 30 個影格之間的視訊

若只要包含特定影格速率範圍內的視訊,請使用 video_framerate。此參數接受具有最多三個選用小數值的浮點數。

?aws.manifestfilter=video_framerate:23.976-30

HLS 和 CMAF 資訊清單的特殊條件

如果您使用 HLS 或 CMAF 資訊清單,則適用這些特殊條件。

  • 對於 HLS 資訊清單,我們強烈建議您使用音訊轉譯群組,以避免將篩選出音訊串流的多工影片串流移除。如需有關轉譯群組的詳細資訊,請參閱轉譯群組參照 AWS Elemental MediaPackage

  • 在 HLS 和 CMAF 資訊清單中,音訊取樣率不會發出訊號,因此要以視覺方式檢查此設定的原始清單或篩選清單並不容易。若要驗證音訊取樣率,請檢查編碼器級別和輸出級別的音訊取樣率。

  • 在 HLS 和 CMAF 資訊清單中,變體的 BANDWIDTH 屬性會將音訊軌道的頻寬與影片軌道相關聯,可能是影片軌道多工處理相關聯,或是由影片軌道所參考的音訊轉譯軌道相關聯。因此,您無法直觀地檢查原始清單和過濾清單以確認過濾video_bitrate器是否正常工作。若要驗證篩選條件,請在編碼器級別和輸出級別檢查影片位元率。

  • 對於 HLS 和 CMAF 資訊清單,請求參數附加到位元率播放列表或段,將會導致 HTTP 400 錯誤。

錯誤情況

下表列出常見的錯誤情況。

錯誤條件 範例 HTTP 狀態碼
找不到清單參數,也不是限制清單的一部分 ?aws.manifestfilter=audio_language:dahlia 200
串流中只有字幕串流存在 ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 200
複製篩選參數 ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=audio_sample_rate:0-48000 400
參數無效 ?aws.manifestfilter=donut_type:rhododendron 400
無效的範圍參數 ?aws.manifestfilter=audio_sample_rate:300-0 400
無效的範圍值 (大於 INT_MAX) ?aws.manifestfilter=audio_sample_rate:0-2147483648 400
格式不正確的查詢字串 ?aws.manifestfilter=audio_sample_rate:is:0-44100 400
參數字串大於 1024 個字元 ?aws.manifestfilter=audio_language:abcdef.... 400
HLS 或 CMAF 位元率資訊清單上的查詢參數 index_1.m3u8?aws.manifestfilter=video_codec:h264 400
區段請求上的查詢參數 ..._1.[ts|mp4|vtt..]?aws.manifestfilter=video_codec:h264 400
重複的查詢參數 ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=video_bitrate:0-1 400
篩選條件的應用程式會產生空白資訊清單 (內容沒有符合查詢字串中定義的條件的資料串流) ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 400