Filtraggio dei manifesti - AWS Elemental MediaPackage

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Filtraggio dei manifesti

Con il filtraggio dei manifest, AWS Elemental MediaPackage produce dinamicamente manifest del client in base ai parametri specificati in una query aggiunta alla richiesta di riproduzione. Ciò consente di eseguire operazioni come limitare l'accesso degli spettatori a contenuti 4K HEVC premium o scegliere come target tipi di dispositivi e intervalli di frequenze di campionamento audio specifici, il tutto da un unico endpoint. In precedenza, avresti dovuto configurare più endpoint per eseguire questo comportamento. MediaPackage ora offre un modo conveniente per produrre dinamicamente diversi manifesti client sullo stesso endpoint.

Uso dei filtri dei manifest

Quando utilizzi un filtro dei manifest, il manifest risultante include solo i flussi audio e video che corrispondono alle caratteristiche specificate nella query. Se non viene utilizzato alcun filtro dei manifest, tutti i flussi acquisiti sono presenti nel flusso di output dell'endpoint. Si ha un'eccezione qualora siano stati impostati filtri dei flussi per l'endpoint, ad esempio bitrate video minimo. In tal caso, il filtro dei manifest viene applicato dopo il filtro dei flussi, ciò potrebbe creare una differenza nell'output e non è raccomandato.

Il filtraggio dei manifesti può essere utilizzato su tutti i tipi di endpoint supportati da: MediaPackage

  • Apple HLS

  • DASH-ISO

  • Microsoft Smooth Streaming

  • CMAF

Per utilizzare il filtro dei manifesti, aggiungi i parametri di aws.manifestfilter query alla tua richiesta di riproduzione a. MediaPackage MediaPackage valuta la query e fornisce un manifesto client basato su tali parametri di query. Le query dei manifest non fanno distinzione tra maiuscole e minuscole e possono contenere fino a 1024 caratteri. Se la query ha un formato errato o se non esistono flussi che corrispondono ai parametri di query, MediaPackage restituisce un manifest incompleto o vuoto. Per la sintassi delle query, consulta la sezione seguente.

Nota

Se utilizzi gli endpoint Apple HLS o CMAF, si applicano condizioni speciali. Per informazioni su queste condizioni, consulta Condizioni speciali per i manifest HLS e CMAF.

Sintassi delle query

Il parametro delle query di base è aws.manifestfilter, che è seguito da coppie di nomi e valori dei parametri opzionali. Per creare la query, aggiungila ?aws.manifestfilter= alla fine dell'URL dell' MediaPackage endpoint, seguito dai nomi e dai valori dei parametri. Per un elenco di tutti i parametri disponibili, consulta Parametri di query del filtro dei manifest.

Una query di filtro Apple HLS potrebbe essere simile alla seguente:

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

La sintassi della query è elencata nella tabella seguente.

Componente della stringa di interrogazione Descrizione
? Un carattere limitato che segna l'inizio di una query.
aws.manifestfilter= La query di base, che è seguita da parametri creati con coppie nomi e valori. Per un elenco di tutti i parametri disponibili, consulta Parametri di query del filtro dei manifest.
: Utilizzato per associare il nome del parametro a un valore. Ad esempio, parameter_name:value.
; Separa i parametri in una query che contiene più parametri. Ad esempio, parameter1_name:value;parameter2_name:minValue-maxValue.
, Separa un elenco di valori. Ad esempio, parameter_name:value1,value2,value3. I valori separati da virgole in un elenco implicano una relazione OR.
- Utilizzato per definire l'intervallo di valori minimo - massimo di un parametro. Ad esempio, audio_sample_rate:0-44100. Quando un valore numerico viene utilizzato in un intervallo, viene incluso nella definizione dell'intervallo. Ciò significa che i flussi devono essere maggiori o uguali al valore minimo e inferiori o uguali al valore massimo. Con gli intervalli, i valori minimi e massimi sono obbligatori. I valori di intervallo supportati sono 0 - 2147483647.
Nota

Se utilizzi Amazon CloudFront come CDN, potresti dover impostare configurazioni aggiuntive. Per ulteriori informazioni, consulta Configurazione dei comportamenti della cache per tutti gli endpoint.

Parametri di query del filtro dei manifest

MediaPackage supporta i seguenti parametri di interrogazione.

Categoria Nome Descrizione Esempio
Audio audio_bitrate
  • Il bitrate audio in bit al secondo.

  • Valori accettati: due numeri interi aggregati con un trattino che definiscono un intervallo inclusivo. I valori di intervallo supportati sono 0 - 2147483647.

stream.mpd?aws.manifestfilter=audio_bitrate:0-2147483647
Audio audio_channels
  • Numero di canali audio.

  • Valori accettati: due numeri interi aggregati con un trattino che definiscono un intervallo inclusivo. I valori di intervallo supportati sono 1 - 32767.

stream.mpd?aws.manifestfilter=audio_channels:1-8
Audio audio_codec
  • Il tipo di codec audio.

  • Valori accettati: AACL, AACH, AC-3, EC-3. È necessario includere il - per AC-3 e EC-3.

    I valori non fanno distinzione tra maiuscole e minuscole.

stream.mpd?aws.manifestfilter=audio_codec:AACL,AC-3
Audio audio_language
  • Lingue audio o codici funzionali derivati dal passthrough del codificatore.

  • Valori accettati: stringhe arbitrarie, ad esempio codici di lingua ISO-639-1 a due o quattro caratteri. È necessario utilizzare le stesse stringhe di lingua impostate per il codificatore.

    I valori non fanno distinzione tra maiuscole e minuscole.

stream.mpd?aws.manifestfilter=audio_language:fr,en-US,de
Audio audio_sample_rate
  • Frequenza di campionamento audio in Hz.

  • Valori accettati: due numeri interi aggregati con un trattino che definiscono un intervallo inclusivo. I valori di intervallo supportati sono 0 - 2147483647.

stream.mpd?aws.manifestfilter=audio_sample_rate:0-44100
Sottotitolo subtitle_language
  • Il linguaggio dei sottotitoli o i codici funzionali derivati dal passthrough dell'encoder.

  • Valori accettati: stringhe arbitrarie, ad esempio codici di lingua ISO-639-1 a due o quattro caratteri. È necessario utilizzare le stesse stringhe di lingua impostate per il codificatore.

    I valori non fanno distinzione tra maiuscole e minuscole.

stream.mpd?aws.manifestfilter=subtitle_language:en-US, hi
Video trickplay_height
  • L'altezza dell'immagine trick-play in pixel. Ciò vale sia per il solo sistema i-Frame che per il trick-play basato su immagini.

    Nota

    Se state usando questo parametro con i-Frame solo trick-play e dovrebbe avere valori simili. trickplay_height video_height Se i valori non sono gli stessi, le tracce contenenti solo I-frame potrebbero essere rimosse da un manifesto.

  • Il trickplay_height filtro viene applicato prima del tiling per DASH su VOD.

  • Valori accettati: due numeri interi aggregati con un trattino che definiscono un intervallo inclusivo. I valori di intervallo supportati sono 1 - 2147483647.

stream.mpd?aws.manifestfilter=trickplay_height:200-1200
Video trickplay_type
  • Il tipo di brano trickplay. Puoi filtrare le tracce trickplay basate su iframe o immagini o usare il valore none per filtrare tutte le tracce trickplay (sia iframe che image).

  • Valori accettati: iframe, image, none.

    I valori non fanno distinzione tra maiuscole e minuscole.

stream.mpd?aws.manifestfilter=trickplay_type:iframe
Video video_bitrate
  • Il bitrate del video in bit al secondo.

    Nota

    Se utilizzi questo parametro, consigliamo di utilizzare solo il parametro del filtro video_bitrate per impostare il bitrate video. Inoltre, non impostare il bitrate video minimo e massimo tramite la MediaPackage console o. AWS CLI Il filtro video_bitrate si applica alle impostazioni del bitrate video create nell'endpoint. Se utilizzi il parametro e imposti il bitrate nella console o AWS CLI, l'output potrebbe essere differente.

  • Valori accettati: due numeri interi aggregati con un trattino che definiscono un intervallo inclusivo. I valori di intervallo supportati sono 0 - 2147483647.

  • Nota

    Non puoi usare questo parametro con gli stream trick-play.

stream.mpd?aws.manifestfilter=video_bitrate:0-2147483647
Video video_codec
  • Il tipo di codec video.

  • Valori accettati: H264, H265.

    I valori non fanno distinzione tra maiuscole e minuscole.

stream.mpd?aws.manifestfilter=video_codec:h264
Video video_dynamic_range
  • La gamma dinamica del video.

  • Valori accettati: hdr10, hlg, sdr.

    I valori non fanno distinzione tra maiuscole e minuscole.

stream.mpd?aws.manifestfilter=video_dynamic_range:hdr10
Video video_framerate
  • L'intervallo della frequenza dei fotogrammi video nel formato NTSC.

  • Valori accettati: due numeri a virgola mobile aggregati con un trattino che definiscono un intervallo inclusivo. Ogni numero può avere fino a tre valori frazionari opzionali. Ad esempio 29.97 o 29.764. I valori di intervallo supportati sono 1 - 999.999.

stream.mpd?aws.manifestfilter=video_framerate:23.976-30
Video video_height
  • L'altezza del video in pixel.

    Nota

    Se state usando questo parametro con i-Frame, fate finta di niente e dovreste avere valori simili. trickplay_height video_height Se i valori non sono gli stessi, le tracce contenenti solo I-frame potrebbero essere rimosse da un manifesto.

  • Valori accettati: due numeri interi aggregati con un trattino che definiscono un intervallo inclusivo. I valori di intervallo supportati sono 1 - 32767.

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

Esempi di filtraggio dei manifest

Questi sono esempi di filtraggio dei manifest.

Esempio 1: scegliere come target un lettore che supporta AVC e una frequenza di campionamento audio di 44,1 k

Il visualizzatore sta riproducendo contenuti su un dispositivo in grado di supportare solo AVC e una frequenza di campionamento audio di 44,1 k. È possibile impostare video_codec e audio_sample_rate per filtrare i flussi che non soddisfano questi requisiti.

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

Esempio 2: limitare il contenuto HEVC 4k.

Il flusso HEVC 4K è di 15 Mbps e tutti gli altri flussi sono inferiori a 9 Mbps. Per escludere il flusso 4K dal set di flussi, è possibile impostare una soglia di 9.000.000 bit al secondo per filtrare ed escludere il bitrate più alto.

?aws.manifestfilter=video_bitrate:0-9000000

Esempio 3: Includi video tra 23,976 e 30 fotogrammi al secondo

Per includere solo video all'interno di un determinato intervallo di frequenza fotogrammi, utilizzare video_framerate. Questo parametro accetta numeri a virgola mobile con un massimo di tre valori decimali opzionali.

?aws.manifestfilter=video_framerate:23.976-30

Condizioni speciali per i manifest HLS e CMAF

Se utilizzi manifest HLS o CMAF, si applicano queste condizioni speciali.

  • Per i manifest HLS, è consigliabile utilizzare gruppi di rendering audio per evitare di rimuovere i flussi video multiplex con i flussi audio filtrati. Per ulteriori informazioni sui gruppi di rendering, consulta I gruppi di rendering fanno riferimento in AWS Elemental MediaPackage.

  • Nei manifest HLS e CMAF, la frequenza di campionamento audio non è segnalata, quindi non è facile ispezionare visivamente i manifest originali o filtrati per questa impostazione. Per verificare la frequenza di campionamento audio, controlla la frequenza di campionamento audio a livello di codificatore e a livello di uscita.

  • Nei manifest HLS e CMAF, l'attributo BANDWIDTH di una variante associa la larghezza di banda della traccia audio alla traccia video, indipendentemente dal fatto che sia multiplex con la traccia video o che si tratti di una traccia di rendering audio a cui fa riferimento la traccia video. Pertanto, non è possibile ispezionare visivamente i manifesti originali e quelli filtrati per confermare che il video_bitrate filtro abbia funzionato. Per verificare il filtro, controllare il bitrate video a livello di codificatore e a livello di output.

  • Per i manifest HLS e CMAF, i parametri di richiesta aggiunti alle playlist o ai segmenti in bitrate determinano un errore HTTP 400.

Condizioni di errore

Le condizioni di errore comuni sono elencate nella tabella riportata di seguito.

Condizione di errore Esempio Codice di stato HTTP
Un parametro list non viene trovato e non fa parte di un elenco vincolato ?aws.manifestfilter=audio_language:dahlia 200
Solo i flussi di sottotitoli sono presenti nel flusso ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 200
Parametro del filtro duplicato ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=audio_sample_rate:0-48000 400
Parametro non valido ?aws.manifestfilter=donut_type:rhododendron 400
Parametro dell'intervallo non valido ?aws.manifestfilter=audio_sample_rate:300-0 400
Valore dell'intervallo non valido (maggiore di INT_MAX) ?aws.manifestfilter=audio_sample_rate:0-2147483648 400
Stringa di query con formato errato ?aws.manifestfilter=audio_sample_rate:is:0-44100 400
Stringa del parametro maggiore di 1024 caratteri ?aws.manifestfilter=audio_language:abcdef.... 400
Parametri di query su un manifest di bitrate HLS o CMAF index_1.m3u8?aws.manifestfilter=video_codec:h264 400
Parametri di query su una richiesta di segmento ..._1.[ts|mp4|vtt..]?aws.manifestfilter=video_codec:h264 400
Parametro di query ripetute ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=video_bitrate:0-1 400
Manifest vuoto in seguito all'applicazione del filtro (il contenuto non ha flussi che soddisfano le condizioni definite nella stringa di query) ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 400