Filters

Media Services-logo v3


Waarschuwing

Azure Media Services wordt op 30 juni 2024 buiten gebruik gesteld. Zie de handleiding voor buitengebruikstelling van AMS voor meer informatie.

Bij het leveren van uw inhoud aan klanten (livestreaminggebeurtenissen of Video on Demand) heeft uw client mogelijk meer flexibiliteit nodig dan wat wordt beschreven in het manifestbestand van de standaardasset. Azure Media Services biedt dynamische manifesten op basis van vooraf gedefinieerde filters.

Filters zijn regels aan de serverzijde waarmee uw klanten dingen kunnen doen zoals:

  • Speel alleen een gedeelte van een video af (in plaats van de hele video af te spelen). Bijvoorbeeld:
    • Verminder het manifest om een subclip van een livegebeurtenis weer te geven ('filteren op subclips'), of
    • Het begin van een video knippen ('een video bijsnijden').
  • Lever alleen de opgegeven weergaven en/of opgegeven taalsporen die worden ondersteund door het apparaat dat wordt gebruikt om de inhoud af te spelen ('weergavefiltering').
  • Presentatievenster aanpassen (DVR) om een beperkte lengte van het DVR-venster in de speler op te geven ('presentatievenster aanpassen').

Met Media Services kunt u accountfilters en assetfilters voor uw inhoud maken. Daarnaast kunt u uw vooraf gemaakte filters koppelen aan een streaming-locator.

Filtertypen

Er zijn twee typen filters:

  • Accountfilters (globaal): kunnen worden toegepast op elke asset in het Azure Media Services-account, hebben een levensduur van het account.
  • Assetfilters (lokaal): kunnen alleen worden toegepast op een asset waaraan het filter is gekoppeld bij het maken, die een levensduur van de asset hebben.

Accountfilters en assetfilters hebben exact dezelfde eigenschappen voor het definiëren/beschrijven van het filter. Behalve bij het maken van het assetfilter moet u de assetnaam opgeven waaraan u het filter wilt koppelen.

Afhankelijk van uw scenario bepaalt u welk type filter het meest geschikt is (assetfilter of accountfilter). Accountfilters zijn geschikt voor apparaatprofielen (weergavefilters), waarbij assetfilters kunnen worden gebruikt om een specifieke asset te knippen.

U gebruikt de volgende eigenschappen om de filters te beschrijven.

Naam Beschrijving
firstQuality De eerste kwaliteitsbitrate van het filter.
presentationTimeRange Het presentatietijdsbereik van een livegebeurtenismanifest. Deze eigenschap wordt gebruikt voor het filteren van begin-/eindpunten van manifesten, de lengte van het presentatievenster en de livestartpositie.
Zie PresentationTimeRange voor meer informatie.
Tracks De selectievoorwaarden worden bijgehouden. Zie tracks voor meer informatie

presentationTimeRange

Gebruik deze eigenschap met assetfilters. Het wordt niet aanbevolen om de eigenschap in te stellen met Accountfilters.

Naam Beschrijving
startTimestamp Is van toepassing op Video on Demand (VoD) of live streamen.
Dit is een lange waarde die een absoluut beginpunt van de stroom vertegenwoordigt. De waarde wordt afgerond naar de dichtstbijzijnde volgende GOP-start. De eenheid is de tijdschaal, dus een startTimestamp van 150000000 is voor 15 seconden.
Gebruik startTimestamp en endTimestamp om de fragmenten in de afspeellijst (manifest) te knippen.
StartTimestamp=40000000 en endTimestamp=100000000 met de standaardtijdschaal genereren bijvoorbeeld een afspeellijst met fragmenten tussen 4 seconden en 10 seconden van de VoD-presentatie. Als een fragment de grens overschrijdt, wordt het hele fragment opgenomen in het manifest.
endTimestamp Is van toepassing op Video on Demand (VoD).
Voor de Live Streaming-presentatie wordt deze op de achtergrond genegeerd en toegepast wanneer de presentatie eindigt en de stream overgaat in VoD.
Dit is een lange waarde die een absoluut eindpunt van de presentatie vertegenwoordigt, afgerond op de dichtstbijzijnde volgende GOP-start. De eenheid is de tijdschaal, dus een endTimestamp van 1800000000 is gedurende 3 minuten.
Gebruik startTimestamp en endTimestamp om de fragmenten in de afspeellijst (manifest) te knippen.
StartTimestamp=40000000 en endTimestamp=100000000 met de standaardtijdschaal genereren bijvoorbeeld een afspeellijst met fragmenten tussen 4 seconden en 10 seconden van de VoD-presentatie. Als een fragment de grens overschrijdt, wordt het hele fragment opgenomen in het manifest.
Tijdschaal Is van toepassing op alle tijdstempels en duur in een presentatietijdsbereik, opgegeven als het aantal stappen in één seconde.
De standaardwaarde is 10000000, tien miljoen stappen in één seconde, waarbij elke stap 100 nanoseconden lang is. De waarde kan echter verschillen, afhankelijk van de bron van de video of als u een livegebeurtenis met codering in de cloud gebruikt (standaard 90Khz of 90000 voor video).)
Als u bijvoorbeeld een startTimestamp wilt instellen op 30 seconden, gebruikt u een waarde van 300000000 wanneer u de standaardtijdschaal gebruikt. Zorg ervoor dat u het manifest voor uw asset controleert om te bevestigen dat de tijdschaal voor het videospoor overeenkomt met de schaal die u hebt ingesteld. Wanneer u livegebeurtenissen met codering gebruikt, kan de tijdschaal 90 Khz (90000) zijn voor de videosporen en 48 kHz (48000) voor de audiosporen.
liveBackoffDuration Alleen van toepassing op live streamen.
Deze waarde definieert de meest recente livepositie waarnaar een client kan zoeken.
Met deze eigenschap kunt u de positie van live afspelen vertragen en een buffer aan de serverzijde maken voor spelers.
De eenheid voor deze eigenschap is tijdschaal (zie hieronder).
De maximale duur van live back-off is 300 seconden (3000000000).
Een waarde van 2000000000 betekent bijvoorbeeld dat de meest recente beschikbare inhoud 20 seconden is vertraagd vanaf de echte live edge.
presentatieWindowDuration Alleen van toepassing op live streamen.
Gebruik presentatieWindowDuration om een schuifvenster met fragmenten toe te passen die moeten worden opgenomen in een afspeellijst.
De eenheid voor deze eigenschap is tijdschaal (zie hieronder).
Stel bijvoorbeeld presentatieWindowDuration=1200000000 in om een schuifvenster van twee minuten toe te passen. Media binnen 2 minuten van de live edge worden opgenomen in de afspeellijst. Als een fragment de grens overschrijdt, wordt het hele fragment opgenomen in de afspeellijst. De minimale duur van het presentatievenster is 60 seconden.
forceEndTimestamp Alleen van toepassing op live streamen.
Geeft aan of de eigenschap endTimestamp aanwezig moet zijn. Als dit waar is, moet endTimestamp worden opgegeven of wordt een ongeldige aanvraagcode geretourneerd.
Toegestane waarden: false, true.

Tracks

U geeft een lijst met eigenschappen voor filtertrack op (FilterTrackPropertyConditions) op basis waarvan de nummers van uw stream (Live Streaming of Video on Demand) moeten worden opgenomen in het dynamisch gemaakte manifest. De filters worden gecombineerd met behulp van een logische AND- en OR-bewerking .

Voorwaarden voor de eigenschap Filtertrack beschrijven spoortypen, waarden (beschreven in de volgende tabel) en bewerkingen (Equal, NotEqual).

Naam Beschrijving
Bitrate Gebruik de bitrate van de track om te filteren.

De beste waarde is een bereik van bitrates, in bits per seconde. Bijvoorbeeld '0-2427000'.

Opmerking: hoewel u een specifieke bitrate-waarde kunt gebruiken, zoals 250000 (bits per seconde), wordt deze benadering niet aanbevolen, omdat de exacte bitrates van de ene asset naar de andere kunnen variëren.
Fourcc Gebruik de FourCC-waarde van het spoor om te filteren.

De waarde is het eerste element van de codecs-indeling, zoals opgegeven in RFC 6381. Momenteel worden de volgende codecs ondersteund:
Voor video: "avc1", "hev1", "hvc1"
Voor audio: "mp4a", "ec-3"

Als u de FourCC-waarden voor sporen in een asset wilt bepalen, haalt u het manifestbestand op en bekijkt u het.
Taal Gebruik de taal van het nummer om te filteren.

De waarde is de tag van een taal die u wilt opnemen, zoals opgegeven in RFC 5646. Bijvoorbeeld 'en'.
Naam Gebruik de naam van het nummer om te filteren.
Type Gebruik het type van de track om te filteren.

De volgende waarden zijn toegestaan: 'video', 'audio' of 'tekst'.

Voorbeeld

In het volgende voorbeeld wordt een livestreamingfilter gedefinieerd:

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

Uw HLS- of DASH-manifesten filteren bij het maken van streaming-locator

Met Media Services kunt u een streaming-locator maken die vooraf is gefilterd door een verzameling filters door te geven in de filtereigenschap op de streaming-locator-entiteit. Hiermee kunt u alle manifesten op de streaming-locator vooraf filteren. Het oorspronkelijke manifest is niet meer beschikbaar via deze streaming-locator en alleen het gefilterde antwoord is toegankelijk voor clients die de URL's voor DASH of HLS aanvragen van de gefilterde streaming-locator. Dit is handig in situaties waarin u alleen een deel van een asset wilt publiceren en voorkomen dat gebruikers toegang krijgen tot het volledige oorspronkelijke manifest voor de asset door de queryreeks van de HLS- of DASH-manifest-URL te bewerken.

U kunt een lijst met asset- of accountfilters opgeven op uw streaming-locator. Dynamic Packager past deze lijst met filters toe samen met de filters die uw client opgeeft in de URL. Met deze combinatie wordt een dynamisch manifest gegenereerd, dat is gebaseerd op filters in de URL + filters die u opgeeft op de streaming-locator.

Filters bijwerken

Filters en streaming-locators kunnen direct worden bijgewerkt, maar houd er rekening mee dat het tot 10 seconden kan duren voordat updates zijn bijgewerkt op de front-endwebservers, en dat er problemen kunnen zijn met downstream-CDN-caching van de inhoud als u dezelfde streaming-locator bijwerkt die al in productie is gepubliceerd en gebruikt.

Het wordt niet aanbevolen om de definitie van filters bij te werken die zijn gekoppeld aan een actief gepubliceerde streaming-locator, met name wanneer CDN is ingeschakeld. Streamingservers en CDN's kunnen interne caches hebben die ertoe kunnen leiden dat verouderde gegevens in de cache worden geretourneerd.

Als de filterdefinitie moet worden gewijzigd, kunt u een nieuw filter maken en dit toevoegen aan de URL van de streaming-locator of een unieke nieuwe streaming-locator publiceren die rechtstreeks naar het bijgewerkte filter verwijst.

Help en ondersteuning

U kunt contact opnemen met Media Services met vragen of onze updates op een van de volgende manieren volgen: