Share via


Filter

Media Services-logotyp v3


Varning

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

När du levererar ditt innehåll till kunder (liveuppspelningshändelser eller video på begäran) kan klienten behöva mer flexibilitet än vad som beskrivs i standardtillgångens manifestfil. Azure Media Services erbjuder dynamiska manifest baserat på fördefinierade filter.

Filter är regler på serversidan som gör att dina kunder kan göra saker som:

  • Spela bara upp ett avsnitt i en video (i stället för att spela upp hela videon). Exempel:
    • Minska manifestet för att visa ett delklipp av en livehändelse ("filtrering av underklipp" eller
    • Trimma början av en video ("trimma en video").
  • Leverera endast de angivna återgivningarna och/eller de angivna språkspåren som stöds av enheten som används för att spela upp innehållet ("återgivningsfiltrering").
  • Justera presentationsfönstret (DVR) för att ge en begränsad längd på DVR-fönstret i spelaren ("justera presentationsfönstret").

Med Media Services kan du skapa kontofilter och tillgångsfilter för ditt innehåll. Dessutom kan du associera dina förskapade filter med en positionerare för direktuppspelning.

Filtertyper

Det finns två typer av filter:

  • Kontofilter (globalt) – kan tillämpas på alla tillgångar i Azure Media Services-kontot, har en livslängd på kontot.
  • Tillgångsfilter (lokalt) – kan endast tillämpas på en tillgång som filtret var associerat med när det skapades, har en livslängd för tillgången.

Kontofilter och tillgångsfiltertyper har exakt samma egenskaper för att definiera/beskriva filtret. Förutom när du skapar tillgångsfiltret måste du ange det tillgångsnamn som du vill associera filtret med.

Beroende på ditt scenario bestämmer du vilken typ av filter som är lämpligare (tillgångsfilter eller kontofilter). Kontofilter är lämpliga för enhetsprofiler (återgivningsfiltrering) där tillgångsfilter kan användas för att trimma en viss tillgång.

Du använder följande egenskaper för att beskriva filtren.

Name Beskrivning
firstQuality Filtrets första kvalitetsbithastighet.
presentationTimeRange Presentationstidsintervallet för ett livehändelsemanifest. Den här egenskapen används för filtrering av start-/slutpunkter för manifest, längd på presentationsfönster och livestartposition.
Mer information finns i PresentationTimeRange.
Spår Spårar urvalsvillkor. Mer information finns i spår

presentationTimeRange

Använd den här egenskapen med tillgångsfilter. Vi rekommenderar inte att du anger egenskapen med kontofilter.

Name Beskrivning
startTimestamp Gäller för Video on Demand (VoD) eller Live Streaming.
Det här är ett långt värde som representerar en absolut startpunkt för dataströmmen. Värdet avrundas till närmaste nästa GOP-start. Enheten är tidsskalan, så en startTimestamp på 150000000 skulle vara i 15 sekunder.
Använd startTimestamp och endTimestamp för att trimma fragmenten i spellistan (manifestet).
StartTimestamp=400000000 och endTimestamp=100000000 med standardtidsskalan genererar till exempel en spellista som innehåller fragment från mellan 4 sekunder och 10 sekunder av VoD-presentationen. Om ett fragment sträcker sig över gränsen inkluderas hela fragmentet i manifestet.
endTimestamp Gäller för Video on Demand (VoD).
För liveuppspelningspresentationen ignoreras den tyst och tillämpas när presentationen avslutas och strömmen blir VoD.
Det här är ett långt värde som representerar en absolut slutpunkt för presentationen, avrundat till närmaste nästa GOP-start. Enheten är tidsskalan, så en endTimestamp på 1800000000 skulle vara i 3 minuter.
Använd startTimestamp och endTimestamp för att trimma fragmenten i spellistan (manifestet).
StartTimestamp=400000000 och endTimestamp=100000000 med standardtidsskalan genererar till exempel en spellista som innehåller fragment från mellan 4 sekunder och 10 sekunder av VoD-presentationen. Om ett fragment sträcker sig över gränsen inkluderas hela fragmentet i manifestet.
Tidsskalan Gäller för alla tidsstämplar och varaktigheter i ett presentationstidsintervall, som anges som antalet steg på en sekund.
Standardvärdet är 100000000 – tio miljoner steg på en sekund, där varje steg skulle vara 100 nanosekunder långt. Värdet kan dock variera beroende på videons källa eller om du använder en livehändelse med kodning i molnet (standardvärdet är 90 KHz eller 9 0000 för video.)
Om du till exempel vill ange en startTimestamp till 30 sekunder använder du värdet 300000000 när du använder standardtidsskalan. Var säker på att kontrollera manifestet för din tillgång för att bekräfta att tidsskalan för videospåret är i den skala som du anger. När du använder livehändelser med kodning kan tidsskalan vara i 90Khz (90000) för videospåren och 48khz (48000) för ljudspåren.
liveBackoffDuration Gäller endast för liveuppspelning.
Det här värdet definierar den senaste livepositionen som en klient kan söka efter.
Med den här egenskapen kan du fördröja liveuppspelningspositionen och skapa en buffert på serversidan för spelare.
Enheten för den här egenskapen är tidsskala (se nedan).
Den maximala varaktigheten för live-säkerhetskopiering är 300 sekunder (3000000000).
Ett värde på 20000000000 innebär till exempel att det senaste tillgängliga innehållet är 20 sekunder försenat från den verkliga live-gränsen.
presentationWindowDuration Gäller endast för liveuppspelning.
Använd presentationWindowDuration för att använda ett skjutfönster med fragment som ska ingå i en spellista.
Enheten för den här egenskapen är tidsskala (se nedan).
Ange till exempel presentationWindowDuration=12000000000 för att tillämpa ett skjutfönster på två minuter. Media inom 2 minuter från live-gränsen kommer att ingå i spellistan. Om ett fragment sträcker sig över gränsen inkluderas hela fragmentet i spellistan. Den minsta varaktigheten för presentationsfönstret är 60 sekunder.
forceEndTimestamp Gäller endast för liveuppspelning.
Anger om egenskapen endTimestamp måste finnas. Om det är sant måste endTimestamp anges eller så returneras en felaktig begärandekod.
Tillåtna värden: false, true.

Spår

Du anger en lista över filterspåregenskapsvillkor (FilterTrackPropertyConditions) baserat på vilka spåren för din ström (liveuppspelning eller video på begäran) ska inkluderas i dynamiskt skapat manifest. Filtren kombineras med hjälp av en logisk AND- och OR-åtgärd .

Filterspåregenskapsvillkor beskriver spårtyper, värden (beskrivs i följande tabell) och åtgärder (Lika med, NotEqual).

Name Beskrivning
Bitrate Använd bithastigheten för spåret för filtrering.

Det bästa värdet är ett intervall med bithastigheter, i bitar per sekund. Till exempel "0-2427000".

Obs! Även om du kan använda ett visst bithastighetsvärde, till exempel 250000 (bitar per sekund), rekommenderas inte den här metoden eftersom de exakta bithastigheterna kan variera från en tillgång till en annan.
Fourcc Använd FourCC-värdet för spåret för filtrering.

Värdet är det första elementet i codecs-format, enligt vad som anges i RFC 6381. För närvarande stöds följande codecs:
För video: "avc1", "hev1", "hvc1"
För ljud: "mp4a", "ec-3"

Om du vill fastställa FourCC-värdena för spår i en tillgång hämtar och undersöker du manifestfilen.
Språk Använd spårets språk för filtrering.

Värdet är taggen för ett språk som du vill inkludera, enligt vad som anges i RFC 5646. Till exempel "en".
Namn Använd namnet på spåret för filtrering.
Typ Använd typen av spår för filtrering.

Följande värden tillåts: "video", "audio" eller "text".

Exempel

I följande exempel definieras ett liveuppspelningsfilter:

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

Filtrera dina HLS- eller DASH-manifest när du skapar positionerare för direktuppspelning

Med Media Services kan du skapa en positionerare för direktuppspelning som är förfiltrerad genom att skicka in en samling filter i filteregenskapen på positionerarentiteten för direktuppspelning. På så sätt kan du förfiltrera alla manifest på positioneraren för direktuppspelning. Det ursprungliga manifestet är inte längre tillgängligt via den här positioneraren för direktuppspelning, och endast det filtrerade svaret är tillgängligt för klienter som begär URL:er för DASH eller HLS från den filtrerade positioneraren för direktuppspelning. Detta är användbart i situationer där du bara vill publicera en del av en tillgång och hindra användare från att få åtkomst till det fullständiga ursprungliga manifestet för tillgången genom att ändra frågesträngen för HLS- eller DASH-manifest-URL:en.

Du kan ange en lista över tillgångs- eller kontofilterpositioneraren för direktuppspelning. Dynamic Packager tillämpar den här listan med filter tillsammans med de som klienten anger i URL:en. Den här kombinationen genererar ett dynamiskt manifest, som baseras på filter i DEN URL + de filter som du anger i positioneraren för direktuppspelning.

Uppdatera filter

Filter och positionerare för direktuppspelning kan uppdateras i farten, men tänk på att det kan ta upp till 10 sekunder innan uppdateringar uppdateras på klientwebbservrarna, och det kan finnas problem med nedströms CDN-cachelagring av innehållet om du uppdaterar samma positionerare för direktuppspelning som redan har publicerats och använts i produktion.

Vi rekommenderar inte att du uppdaterar definitionen av filter som är associerade med en aktivt publicerad positionerare för direktuppspelning, särskilt när CDN är aktiverat. Strömningsservrar och CDN:er kan ha interna cacheminnen som kan resultera i att inaktuella cachelagrade data returneras.

Om filterdefinitionen behöver ändras kan du skapa ett nytt filter och lägga till det i URL:en för positionerare för direktuppspelning eller publicera en unikt ny positionerare för direktuppspelning som refererar till det uppdaterade filtret direkt.

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: