Filtri

logo di Servizi multimediali v3


Per la documentazione Servizi multimediali versione 2,

Quando si recapita il contenuto ai clienti (eventi di streaming live o video on demand), il client potrebbe richiedere una maggiore flessibilità rispetto a quanto descritto nel file manifesto dell'asset predefinito. Servizi multimediali di Azure offre manifesti dinamici basati su filtri predefiniti.

I filtri sono regole lato server che consentono ai clienti di eseguire operazioni come:

  • Riprodurre una sola sezione di un video (anziché il video intero). Ad esempio:
    • Ridurre il manifesto in modo da mostrare solo una sottoclip di un evento live ("filtro di sottoclip") o
    • Tagliare l'inizio di un video ("trimming di un video").
  • Distribuire solo i rendering specificati e/o le tracce di lingua specificate, se supportate dal dispositivo usato per la riproduzione dei contenuti ("filtro di rendering").
  • Regolare la finestra di presentazione (DVR) in modo da ottenere una lunghezza limitata della finestra nel lettore ("regolazione finestra presentazione").

Servizi multimediali consente di creare filtri account efiltri asset per il contenuto. È anche possibile associare i filtri creati in precedenza a un localizzatore di streaming.

Definizione di filtri

Sono disponibili due tipi di filtri:

  • Filtri account (globali): possono essere applicati a qualsiasi asset nell’account di Servizi multimediali di Azure e hanno una durata equivalente a quella dell’account.
  • Filtri asset (locali): possono essere applicati solo a uno degli asset a cui è stato associato il filtro in fase di creazione e hanno una durata equivalente a quella dell’asset.

I tipi di filtri account e filtri asset hanno esattamente le stesse proprietà per la definizione/descrizione del filtro. Tranne quando si crea il filtro asset, è necessario specificare il nome dell'asset a cui si desidera associare il filtro.

A seconda dello scenario, decidere quale tipo di filtro è più adatto (asset o account). I filtri asset sono più adatti per i profili di dispositivo (filtro di rendering), mentre i filtri asset possono essere usati per tagliare un asset specifico.

Utilizzare le seguenti proprietà per descrivere i filtri.

Nome Descrizione
firstQuality La prima velocità in bit di qualità del filtro.
presentationTimeRange L’intervallo di tempo di presentazione. Questa proprietà viene utilizzata per filtrare i punti di inizio/fine del manifesto, la lunghezza della finestra di presentazione e la posizione iniziale live.
Per altre informazioni, vedere Intervallo di tempo di presentazione.
brani Le condizioni di selezione dei brani. Per ulteriori informazioni, vedere brani

presentationTimeRange

Utilizzare questa proprietà con i filtri asset. Non è consigliabile impostare la proprietà per i filtri account.

Nome Descrizione
endTimestamp È adatto per i video on demand (VoD).
Per la presentazione in streaming live, viene automaticamente ignorata e applicata quando la presentazione termina e il flusso diventa VoD.
Si tratta di un valore long che rappresenta un punto finale assoluto della presentazione, arrotondato all'inizio GOP successivo più vicino. L'unità è la scala cronologica, quindi un valore endTimestamp di 1800000000 sarà per 3 minuti.
Usare startTimestamp ed endTimestamp per tagliare i frammenti che saranno nella playlist (manifesto).
Ad esempio, startTimestamp=40000000 ed endTimestamp=100000000 usando la scala cronologica predefinita genererà una playlist che contiene frammenti compresi tra 4 secondi e 10 secondi della presentazione VoD. Se un frammento attraversa il limite, l'intero frammento verrà incluso nel manifesto.
forceEndTimestamp Si applica solo allo streaming live.
Indica se la proprietà endTimestamp deve essere presente. Se true, è necessario specificare endTimestamp o viene restituito un codice di richiesta non valido.
Valori consentiti: false, true.
liveBackoffDuration Si applica solo allo streaming live.
Questo valore definisce la posizione live più recente che un client può cercare.
Usando questa proprietà, è possibile ritardare la posizione della riproduzione live e creare un buffer lato server per i lettori.
L'unità per questa proprietà è la scala cronologica (vedere di seguito).
La durata massima di live back off è di 300 secondi (30000000000).
Ad esempio, un valore pari a 20000000000 indica che il contenuto disponibile più recente viene ritardato di 20 secondi dal margine live reale.
presentationWindowDuration Si applica solo allo streaming live.
Usare presentationWindowDuration per applicare una finestra temporale scorrevole di frammenti da includere in una playlist.
L'unità per questa proprietà è la scala cronologica (vedere di seguito).
Ad esempio, impostare presentationWindowDuration = 1200000000 per applicare una finestra temporale scorrevole di due minuti. Nella playlist verranno inclusi i contenuti multimediali che rientrano nei 2 minuti dell’arco live. Se un frammento attraversa il limite, l'intero frammento verrà incluso nella playlist. La durata minima della finestra di presentazione è di 60 secondi.
startTimestamp Si applica a Video on Demand (VoD) o Streaming live.
Si tratta di un valore long che rappresenta un punto iniziale assoluto del flusso. Viene arrotondato all'inizio GOP successivo più vicino. L'unità è la scala cronologica, quindi un valore startTimestamp di 150000000 sarà per 15 secondi.
Usare startTimestamp ed endTimestampp per tagliare i frammenti che saranno nella playlist (manifesto).
Ad esempio, startTimestamp=40000000 ed endTimestamp=100000000 usando la scala cronologica predefinita genererà una playlist che contiene frammenti compresi tra 4 secondi e 10 secondi della presentazione VoD. Se un frammento attraversa il limite, l'intero frammento verrà incluso nel manifesto.
timescale Si applica a tutti i timestamp e le durate in un intervallo di tempo di presentazione, specificato come numero di incrementi in un secondo.
Il valore predefinito è 10000000- dieci milioni di incrementi in un secondo, dove ogni incremento sarebbe lungo 100 nanosecondi.
Ad esempio, se si vuole impostare startTimestamp su 30 secondi, usare il valore 300000000 quando si usa la scala cronologica predefinita.

Brani

Si specifica un elenco di condizioni delle proprietà di traccia del filtro (FilterTrackPropertyConditions) in base alle quali le tracce del flusso (streaming live o video on demand) devono essere incluse nel manifesto creato dinamicamente. I filtri vengono combinati usando gli operatori logici AND e O.

Le condizioni delle proprietà di filtro indicano i tipi di brano, i valori (descritti nella tabella seguente) e le operazioni (Uguale, DiversoDa).

Nome Descrizione
Bitrate Usare la velocità in bit del brano per il filtro.

Il valore consigliato è un intervallo di velocità in bit, in bit al secondo. Ad esempio, "0-2427000".

Nota: anche se è possibile usare un valore di velocità in bit specifico, ad esempio 250000 (bit al secondo), questo approccio è sconsigliato, perché la velocità in bit esatta può variare da un asset a un altro.
FourCC Usare il valore FourCC del brano come filtro.

Il valore è il primo elemento di formato codec, come specificato in RFC 6381. Attualmente sono supportati i seguenti codec:
Per i video: "avc1", "hev1", "hvc1"
Per l’audio: "mp4a", "ec-3"

Per determinare i valori di FourCC per i brani in un asset, ottenere ed esaminare il file manifesto.
Lingua Usare la lingua del brano come filtro.

Il valore è il tag di una lingua che si desidera includere, come specificato in RFC 5646. Ad esempio, "en".
Nome Usare il nome del brano come filtro.
Tipo Usare il tipo di brano come filtro.

Sono consentiti i seguenti valori: "video", "audio" o "text".

Esempio

L'esempio seguente definisce un filtro live streaming:

{
  "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"
          }
        ]
      }
    ]
  }
}

Associazione di filtri a Streaming Locator

È possibile specificare un elenco di filtri di asset o account nel localizzatore di streaming. Dynamic Packager applica questo elenco di filtri insieme a quelli specificati dal client nell'URL. Questa combinazione genera un manifestodinamico, che si basa sui filtri nell'URL e sui filtri specificati nel localizzatore di streaming.

Vedere gli esempi seguenti:

Aggiornamento dei filtri

I localizzatori di streaming non sono aggiornabili mentre è possibile aggiornare i filtri.

Non è consigliabile aggiornare la definizione dei filtri associati a un localizzatore di streaming pubblicato attivamente,soprattutto quando l'rete CDN è abilitata. I server di streaming e le reti CDN possono avere cache interne che possono restituire dati memorizzati nella cache non obsoleti.

Se è necessario modificare la definizione del filtro, è consigliabile creare un nuovo filtro e aggiungerlo all'URL del localizzatore di streaming o pubblicare un nuovo localizzatore di streaming che fa riferimento direttamente al filtro.

Passaggi successivi

Gli articoli seguenti spiegano come creare filtri in modo programmatico.