Filtrera dina manifest med dynamic packager

Media Services-logotyp v3


Varning

Azure Media Services dras tillbaka den 30 juni 2024. Mer information finns i AMS Pensionsguide.

När du levererar strömmande innehåll med anpassningsbar bithastighet till enheter måste du ibland publicera flera versioner av ett manifest för att rikta specifika enhetsfunktioner eller tillgänglig nätverksbandbredd. Med Dynamic Packager kan du ange filter som kan filtrera bort specifika kombinationer av codecs, upplösningar, bithastigheter och ljudspår i farten. Filtrering tar bort behovet av att skapa flera kopior. Du behöver helt enkelt publicera en ny URL med en specifik uppsättning filter som konfigurerats för dina målenheter (iOS, Android, SmartTV eller webbläsare) och nätverksfunktionerna (scenarier med hög bandbredd, mobil eller låg bandbredd). I det här fallet kan klienter ändra strömning av ditt innehåll via frågesträngen (genom att ange tillgängliga tillgångsfilter eller kontofilter) och använda filter för att strömma specifika delar av en dataström.

Vissa leveransscenarier kräver att du ser till att en kund inte kan komma åt specifika spår. Du kanske till exempel inte vill publicera ett manifest som innehåller HD-spår till en specifik prenumerantnivå. Eller så kanske du vill ta bort specifika ABR-spår (adaptiv bithastighet) för att minska leveranskostnaden till en specifik enhet som inte skulle dra nytta av de ytterligare spåren. I det här fallet kan du associera en lista med förskapade filter med din positionerare för direktuppspelning när du skapar. Klienter kan sedan inte ändra hur innehållet strömmas eftersom det definieras av positioneraren för direktuppspelning.

Du kan kombinera filtrering genom att ange filter på Positionerare för direktuppspelning + ytterligare enhetsspecifika filter som klienten anger i URL:en. Den här kombinationen är användbar för att begränsa ytterligare spår som metadata eller händelseströmmar, ljudspråk eller beskrivande ljudspår.

Den här möjligheten att ange olika filter i dataströmmen ger en kraftfull lösning för dynamisk manifestmanipulering för att rikta in sig på flera användningsfallsscenarier för dina målenheter. Det här avsnittet beskriver begrepp som rör dynamiska manifest och ger exempel på scenarier där du kan använda den här funktionen.

Anteckning

Dynamiska manifest ändrar inte tillgången och standardmanifestet för den tillgången.

Översikt över manifest

Azure Media Services stöder HLS-, MPEG DASH- och Smooth Streaming-protokoll. Som en del av dynamisk paketering genereras strömningsklientmanifesten (HLS Master Playlist, DASH Media Presentation Description [MPD] och Smooth Streaming) dynamiskt baserat på formatväljaren i URL:en. Mer information finns i leveransprotokollen i Vanliga arbetsflöden på begäran.

Hämta och granska manifestfiler

Du anger en lista över filterspåregenskapsvillkor baserat på vilka spår av strömmen (live eller video på begäran [VOD]) som ska ingå i ett dynamiskt skapat manifest. För att hämta och undersöka egenskaperna för spåren måste du läsa in Smooth Streaming-manifestet först.

Övervaka bithastigheten för en videoström

Du kan använda demosidan för Azure Media Player för att övervaka bithastigheten för en videoström. På demosidan visas diagnostikinformation på fliken Diagnostik :

azure media player-diagnostik

Exempel: URL:er med filter i frågesträngen

Du kan använda filter för ABR-strömningsprotokoll: HLS, MPEG-DASH och Smooth Streaming. I följande tabell visas några exempel på URL:er med filter:

Protokoll Exempel
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)

Återgivningsfiltrering

Du kan välja att koda din tillgång till flera kodningsprofiler (H.264 Baseline, H.264 High, AACL, AACH, Dolby Digital Plus) och flera bithastigheter av hög kvalitet. Alla klientenheter stöder dock inte alla dina tillgångars profiler och bithastigheter. Äldre Android-enheter stöder till exempel endast H.264 Baseline+AACL. Att skicka högre bithastigheter till en enhet som inte kan få fördelarna slösar bort bandbredd och enhetsberäkning. En sådan enhet måste avkoda all angiven information, bara för att skala ned den för visning.

Med dynamiskt manifest kan du skapa enhetsprofiler (till exempel mobil, konsol eller HD/SD) och inkludera de spår och egenskaper som du vill vara en del av varje profil. Det kallas återgivningsfiltrering. Följande diagram visar ett exempel på det.

återgivningsfilter 2 diagram

Överst i följande diagram visas HLS-manifestet för tillgången utan filter. (Den innehåller alla sju återgivningar.) I det nedre vänstra hörnet visar diagrammet ett HLS-manifest som ett filter med namnet "ott" tillämpades på. Ott-filtret anger borttagningen av alla bithastigheter under 1 Mbit/s, så de två lägsta kvalitetsnivåerna togs bort i svaret. I det nedre högra hörnet visar diagrammet HLS-manifestet som ett filter med namnet "mobile" tillämpades på. Filtret "mobil" anger borttagning av återgivningar där upplösningen är större än 720p, så de två återgivningarna på 1080p togs bort.

återgivningsfilterdiagram

Ta bort språkspår

Dina tillgångar kan innehålla flera ljudspråk som engelska, spanska, franska och så vidare. Vanligtvis hanterar Player SDK standardval av ljudspår och tillgängliga ljudspår per användare.

Det är svårt att utveckla sådana spelar-SDK:er eftersom det krävs olika implementeringar i enhetsspecifika spelarramverk. På vissa plattformar är player-API:er begränsade och inkluderar inte funktionen för val av ljud där användarna inte kan välja eller ändra standardljudspåret. Med tillgångsfilter kan du styra beteendet genom att skapa filter som bara innehåller önskade ljudspråk.

språkfilterdiagram

Trimma starten av en tillgång

I de flesta liveuppspelningshändelser kör operatörerna vissa tester före den faktiska händelsen. De kan till exempel innehålla en skiffer som denna innan händelsen börjar: "Programmet börjar tillfälligt."

Om programmet arkiveras arkiveras även test- och skifferdata och inkluderas i presentationen. Den här informationen bör dock inte visas för klienterna. Med dynamiskt manifest kan du skapa ett starttidsfilter och ta bort oönskade data från manifestet.

trimfilterdiagram

Skapa underklipp (vyer) från ett livearkiv

Många livehändelser är långvariga och livearkivet kan innehålla flera händelser. När livehändelsen är slut kanske programföretagen vill dela upp livearkivet i logiska programstart- och stoppsekvenser.

Du kan publicera dessa virtuella program separat utan att efterbearbetning av livearkivet skapa separata tillgångar (som inte får nytta av befintliga cachelagrade fragment i CDN). Exempel på sådana virtuella program är kvartalen för en fotboll eller basketmatch, inningar i baseboll eller enskilda händelser i något sportprogram.

Med dynamiskt manifest kan du skapa filter med start-/sluttider och skapa virtuella vyer överst i ditt livearkiv.

filterdiagram för underordnad bild

Här är den filtrerade tillgången:

skissfilterdiagram

Justera presentationsfönstret (DVR)

För närvarande erbjuder Azure Media Services cirkulär arkivering där varaktigheten kan konfigureras mellan 1 minut och 25 timmar. Manifestfiltrering kan användas för att skapa ett rullande DVR-fönster överst i arkivet, utan att ta bort media. Det finns många scenarier där programföretag vill tillhandahålla ett begränsat DVR-fönster för att flytta med live-gränsen och samtidigt behålla ett större arkiveringsfönster. Ett programföretag kanske vill använda data som är borta från DVR-fönstret för att markera klipp, eller så kanske de vill tillhandahålla olika DVR-fönster för olika enheter. De flesta mobila enheter hanterar till exempel inte stora DVR-fönster (du kan ha ett 2-minuters DVR-fönster för mobila enheter och en timme för skrivbordsklienter).

dvr filterdiagram

Justera LiveBackoff (liveposition)

Manifestfiltrering kan användas för att ta bort flera sekunder från live-gränsen för ett liveprogram. Filtrering gör det möjligt för programföretag att watch presentationen på förhandsgranskningspublikationsplatsen och skapa annonsinfogningspunkter innan tittarna får strömmen (säkerhetskopieras med 30 sekunder). Programföretag kan sedan skicka dessa annonser till sina klientramverk i tid så att de kan ta emot och bearbeta informationen före annonsmöjligheten.

Förutom annonsstödet kan live-back-off-inställningen användas för att justera tittarnas position så att när klienterna driver och når live-gränsen kan de fortfarande få fragment från servern. På så sätt får klienterna inget HTTP 404- eller 412-fel.

filterdiagram för live-backoff

Kombinera flera regler i ett enda filter

Du kan kombinera flera filtreringsregler i ett enda filter. Du kan till exempel definiera en "intervallregel" för att ta bort skiffer från ett livearkiv och även filtrera bort tillgängliga bithastigheter. När du tillämpar flera filtreringsregler är slutresultatet skärningspunkten för alla regler.

filterdiagram för flera regler

Kombinera flera filter (filtersammansättning)

Du kan också kombinera flera filter i en enda URL. Följande scenario visar varför du kanske vill kombinera filter:

  1. Du måste filtrera dina videokvaliteter för mobila enheter, till exempel Android eller iPad (för att begränsa videokvaliteter). Om du vill ta bort de oönskade egenskaperna skapar du ett kontofilter som är lämpligt för enhetsprofilerna. Du kan använda kontofilter för alla dina tillgångar under samma Media Services-konto utan ytterligare association.
  2. Du vill också trimma start- och sluttiden för en tillgång. Om du vill utföra trimningen skapar du ett tillgångsfilter och anger start-/sluttiden.
  3. Du vill kombinera båda dessa filter. Utan kombination skulle du behöva lägga till kvalitetsfiltrering i trimningsfiltret, vilket skulle göra filteranvändningen svårare.

Om du vill kombinera filter anger du filternamnen till manifest-/spellistans URL i semikolonavgränsat format. Anta att du har ett filter med namnet MyMobileDevice som filtrerar egenskaper och att du har ett annat med namnet MyStartTime för att ange en viss starttid. Du kan kombinera upp till tre filter.

Överväganden och begränsningar

  • Värdena för forceEndTimestamp, presentationWindowDuration och liveBackoffDuration bör inte anges för ett VOD-filter. De används endast för scenarier med livefilter.

  • Ett dynamiskt manifest fungerar i GOP-gränser (nyckelramar), så trimning har GOP-noggrannhet.

  • Du kan använda samma filternamn för konto- och tillgångsfilter. Tillgångsfilter har högre prioritet och åsidosätter kontofilter.

  • Om du uppdaterar ett filter kan det ta upp till 2 minuter för slutpunkten för direktuppspelning att uppdatera reglerna. Om du använde filter för att hantera innehållet (och du cachelagrade innehållet i proxyservrar och CDN-cacheminnen) kan uppdatering av dessa filter leda till spelarfel. Vi rekommenderar att du rensar cacheminnet när du har uppdaterat filtret. Om det här alternativet inte är möjligt bör du överväga att använda ett annat filter.

  • Kunderna måste ladda ned manifestet manuellt och parsa den exakta starttidsstämpeln och tidsskalan.

    • Om du vill fastställa egenskaperna för spåren i en tillgång hämtar och undersöker du manifestfilen.
    • Formeln för att ange egenskaper för tidsstämpel för tillgångsfiltret är:
      startTimestamp = <starttid i manifestet> + <förväntad starttid för filtret i sekunder> * tidsskala

Få hjälp och support

Du kan kontakta Media Services med frågor eller följa våra uppdateringar med någon av följande metoder: