Inhoud streamen met CDN-integratie

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.

Belangrijk

Aangezien Azure Media Services vanaf 30 juni 2024 buiten gebruik wordt gesteld en Azure CDN Azure CDN Standard op 31 oktober 2023 buiten gebruik stelt , kunt u het beste geen nieuwe CDN's maken voor gebruik met Azure Media Services. Zie de handleiding voor het opnieuw uitvoeren van Azure Media Services.

Azure Content Delivery Network (CDN) biedt ontwikkelaars een globale oplossing voor het snel leveren van inhoud met hoge bandbreedte door de inhoud op strategische, fysieke knooppunten in de hele wereld in de cache op te slaan.

CDN slaat inhoud op die wordt gestreamd vanaf een Media Services-streaming-eindpunt (origin) per codec, per streamingprotocol, per bitrate, per containerindeling en per versleuteling/DRM. Voor elke combinatie van codec-streaming protocol-container format-bitrate-encryption is er een afzonderlijke CDN-cache.

De populaire inhoud wordt rechtstreeks vanuit de CDN-cache geleverd zolang het videofragment in de cache wordt opgeslagen. Live-inhoud wordt waarschijnlijk in de cache opgeslagen, omdat er meestal veel mensen precies hetzelfde bekijken. Inhoud op aanvraag kan iets lastiger zijn, omdat u misschien wel bepaalde inhoud hebt die populair is en sommige niet. Als u miljoenen video-assets hebt waarvan geen van hen populair is (slechts één of twee kijkers per week), maar u duizenden mensen hebt die alle verschillende video's bekijken, wordt het CDN veel minder effectief.

U moet ook rekening houden met de werking van adaptieve streaming. Elk afzonderlijk videofragment wordt in de cache opgeslagen als een eigen entiteit. Stel dat een bepaalde video voor het eerst wordt bekeken. Als de kijker hier en daar slechts een paar seconden kijkt, worden alleen de videofragmenten die zijn gekoppeld aan wat de persoon heeft bekeken, in de cache opgeslagen in CDN. Met adaptieve streaming hebt u doorgaans 5 tot 7 verschillende bitrates van video. Als één persoon één bitrate bekijkt en een andere persoon een andere bitrate bekijkt, worden ze allemaal afzonderlijk in de cache opgeslagen in het CDN. Zelfs als twee personen dezelfde bitrate bekijken, kunnen ze streamen via verschillende protocollen. Elk protocol (HLS, MPEG-DASH, Smooth Streaming) wordt afzonderlijk in de cache opgeslagen. Elke bitrate en elk protocol worden dus afzonderlijk in de cache opgeslagen en alleen de videofragmenten die zijn aangevraagd, worden in de cache opgeslagen.

Met uitzondering van de testomgeving raden we u aan CDN in te schakelen voor zowel Standard- als Premium-streaming-eindpunten. Elk type streaming-eindpunt heeft een andere ondersteunde doorvoerlimiet.

Het is moeilijk om een nauwkeurige berekening te maken voor het maximum aantal gelijktijdige streams dat wordt ondersteund door een streaming-eindpunt, omdat er verschillende factoren zijn om rekening mee te houden. Deze omvatten:

  • Maximale bitrates die worden gebruikt voor streaming
  • Prebuffer- en schakelgedrag van de speler. Spelers proberen segmenten van een oorsprong te bursten en de belastingssnelheid te gebruiken om adaptieve bitrate switching te berekenen. Als een streaming-eindpunt bijna verzadiging heeft, kunnen de reactietijden variëren en beginnen spelers over te schakelen naar een lagere kwaliteit. Omdat dit de belasting van de streaming-eindpuntspelers vermindert, schaalt u terug naar een hogere kwaliteit, waardoor ongewenste schakeltriggers worden veroorzaakt.

Over het algemeen is het veilig om de maximale gelijktijdige streams te schatten door de maximale doorvoer van het streaming-eindpunt te nemen en deze te delen door de maximale bitsnelheid (ervan uitgaande dat alle spelers de hoogste bitrate gebruiken.) U kunt bijvoorbeeld een Standard-streaming-eindpunt hebben dat beperkt is tot 600 Mbps en de hoogste bitrate van 3Mbp. In dit geval worden ongeveer 200 gelijktijdige streams ondersteund op de hoogste bitsnelheid. Vergeet niet om ook rekening te houden met de vereisten voor audiobandbreedte. Hoewel een audiostream slechts 128 kps kan streamen, wordt de totale streaming snel opgeteld wanneer u deze vermenigvuldigt met het aantal gelijktijdige streams.

In dit onderwerp wordt het inschakelen van CDN-integratie besproken. Ook wordt prefetching (actieve caching) en het concept Origin-Assist CDN-Prefetch uitgelegd.

Overwegingen

  • Het streaming-eindpunthostname en de streaming-URL blijven hetzelfde, ongeacht of u CDN inschakelt of niet.
  • Als u de mogelijkheid nodig hebt om uw inhoud met of zonder CDN te testen, maakt u een ander streaming-eindpunt waarvoor CDN niet is ingeschakeld.

Azure CDN-integratie inschakelen

Belangrijk

U kunt CDN niet inschakelen voor azure-accounts voor proefversies of studenten.

CDN-integratie is ingeschakeld in alle Azure-datacenters, behalve in de regio's van de federale overheid en China.

Nadat een streaming-eindpunt is ingericht met CDN ingeschakeld, is er een gedefinieerde wachttijd op Media Services voordat de DNS-update wordt uitgevoerd om het streaming-eindpunt toe te wijzen aan cdn-eindpunt.

Als u het CDN later wilt uitschakelen/inschakelen, moet uw streaming-eindpunt de status Gestopt hebben. Zodra het streaming-eindpunt is gestart, kan het tot vier uur duren voordat de Azure CDN-integratie is ingeschakeld en de wijzigingen actief zijn voor alle CDN-POP's. U kunt echter uw streaming-eindpunt starten en streamen zonder onderbrekingen vanaf het streaming-eindpunt. Zodra de integratie is voltooid, wordt de stream geleverd vanuit het CDN. Tijdens de inrichtingsperiode bevindt uw streaming-eindpunt zich in de beginstatus en ziet u mogelijk verminderde prestaties.

Wanneer het Standard-streaming-eindpunt wordt gemaakt, wordt dit standaard geconfigureerd met Standard Verizon. U kunt Premium Verizon- of Standard Akamai-providers configureren met behulp van REST API's.

Azure Media Services-integratie met Azure CDN is geïmplementeerd op Azure CDN van Verizon voor standaardstreaming-eindpunten. Premium-streaming-eindpunten kunnen worden geconfigureerd met Standard Verizon of Premium Verizon. Standard Akamai kan alleen worden geconfigureerd met REST API's of client-SDK's.

Notitie

Zie het CDN-overzicht voor meer informatie over Azure CDN.

Bepalen of er een DNS-wijziging is aangebracht

U kunt bepalen of er een DNS-wijziging is aangebracht op een streaming-eindpunt (het verkeer wordt omgeleid naar het Azure CDN) met behulp van https://www.digwebinterface.com. Als u domeinnamen in de resultaten ziet azureedge.net , wordt het verkeer nu naar het CDN verwezen.

Origin-Assist CDN-Prefetch

CDN-caching is een reactief proces. Als het CDN het volgende object kan voorspellen dat wordt aangevraagd, kan het CDN het volgende object proactief aanvragen en in de cache opslaan. Met dit proces kunt u een cachetreffer bereiken voor alle (of de meeste) objecten, waardoor de prestaties worden verbeterd.

Prefetching streeft ernaar om objecten aan de "rand van het internet" te plaatsen in de verwachting dat de objecten binnenkort door de speler worden aangevraagd, waardoor de tijd om dat object aan de speler af te leveren wordt verkort.

Om dit doel te bereiken, moeten een streaming-eindpunt (oorsprong) en CDN op een aantal manieren hand-in-hand werken:

  • De origin van Media Services moet beschikken over de 'intelligentie' (Origin-Assist) om het CDN te laten weten welk object het volgende moet worden voorbereid.
  • Het CDN voert de prefetch en caching uit (CDN-prefetch-onderdeel). Het CDN moet ook beschikken over de 'intelligentie' voor het volgende:
    • de oorsprong bepalen of het een prefetch of een normale ophaalbewerking is
    • de 404-antwoorden verwerken
    • en een manier om eindeloze prefetch-lus te voorkomen

Voordelen

De voordelen van de Origin-Assist CDN-Prefetch-functie zijn onder andere:

  • Prefetch verbetert de afspeelkwaliteit van video door verwachte videosegmenten vooraf aan de rand te plaatsen tijdens het afspelen, de latentie voor de kijker te verminderen en de downloadtijden van het videosegment te verbeteren. Dit resulteert in een snellere opstarttijd van video's en een lagere foutopsporing.
  • Dit concept is van toepassing op een algemeen scenario met cdn-oorsprong en is niet beperkt tot media.
  • Akamai heeft deze functie toegevoegd aan Akamai Cloud Embed (ACE).

Notitie

Deze functie is nog niet van toepassing op het Akamai CDN dat is geïntegreerd met het streaming-eindpunt van Media Services. Het is echter beschikbaar voor Media Services-klanten die een bestaand Akamai-contract hebben en aangepaste integratie tussen Akamai CDN en de Media Services-origin nodig hebben.

Uitleg

CDN-ondersteuning voor de Origin-Assist CDN-Prefetch headers (voor zowel live- als videostreaming op aanvraag) is beschikbaar voor klanten die een direct contract hebben met Akamai CDN. De functie omvat de volgende HTTP-headeruitwisseling tussen Akamai CDN en de Media Services-oorsprong:

HTTP-header Waarden Afzender Ontvanger Doel
CDN-Origin-Assist-Prefetch-Enabled 1 (standaard) of 0 CDN Oorsprong Om aan te geven dat CDN prefetch is ingeschakeld.
CDN-Origin-Assist-Prefetch-Path Voorbeeld:
Fragmenten(video=1400000000,format=mpd-time-cmaf)
Oorsprong CDN Om een prefetch-pad naar CDN op te geven.
CDN-Origin-Assist-Prefetch-Request 1 (prefetch-aanvraag) of 0 (reguliere aanvraag) CDN Oorsprong Om aan te geven dat de aanvraag van CDN een prefetch is.

Als u een deel van de headeruitwisseling in actie wilt zien, kunt u de volgende stappen uitvoeren:

  1. Gebruik Postman of cURL om een aanvraag uit te dienen bij de Media Services-oorsprong voor een audio- of videosegment of fragment. Zorg ervoor dat u de header in de aanvraag toevoegt CDN-Origin-Assist-Prefetch-Enabled: 1 .
  2. In het antwoord ziet u de header CDN-Origin-Assist-Prefetch-Path met een relatief pad als waarde.

Ondersteunde streamingprotocollen

De Origin-Assist CDN-Prefetch functie ondersteunt de volgende streamingprotocollen voor live streamen en streaming op aanvraag:

  • HLS v3
  • HLS v4
  • HLS CMAF
  • STREEPJE (CSF)
  • STREEPJE (CMAF)
  • Vloeiend streamen

Veelgestelde vragen

  • Wat gebeurt er als de URL van een prefetch-pad ongeldig is, zodat cdn-prefetch een 404 krijgt?

    CDN slaat een 404-antwoord slechts 10 seconden (of een andere geconfigureerde waarde) in de cache op.

  • Stel dat u een video op aanvraag hebt. Als CDN-prefetch is ingeschakeld, impliceert deze functie dan dat zodra een client het eerste videosegment aanvraagt, prefetch een lus start om alle volgende videosegmenten met dezelfde bitrate vooraf te laten gaan?

    Nee, CDN-prefetch wordt alleen uitgevoerd na een door de client geïnitieerde aanvraag/reactie. CDN-prefetch wordt nooit geactiveerd door een prefetch, om een prefetch-lus te voorkomen.

  • Is Origin-Assist CDN-Prefetch functie altijd ingeschakeld? Hoe kan het worden in- of uitgeschakeld?

    Deze functie is standaard uitgeschakeld. Klanten moeten deze functie inschakelen via de Akamai-API.

  • Wat gebeurt er bij live streamen met Origin-Assist als het volgende segment of fragment nog niet beschikbaar is?

    In dit geval biedt CDN-Origin-Assist-Prefetch-Path de Media Services-oorsprong geen header en cdn-prefetch niet.

  • Hoe werkt Origin-Assist CDN-Prefetch het met dynamische manifestfilters?

    Deze functie werkt onafhankelijk van het manifestfilter. Wanneer het volgende fragment zich buiten een filtervenster bevindt, wordt de URL nog steeds gevonden door te kijken naar het onbewerkte clientmanifest en vervolgens geretourneerd als ANTWOORDheader van CDN-prefetch. CDN krijgt dus de URL van een fragment dat is gefilterd uit het DASH/HLS/Smooth-manifest. De speler zal echter nooit een GET-aanvraag indienen bij CDN om dat fragment op te halen, omdat dat fragment niet is opgenomen in het DASH/HLS/Smooth-manifest van de speler (de speler weet het bestaan van dat fragment niet).

  • Kan DASH MPD/HLS playlist/Smooth manifest vooraf worden gefetched?

    Nee, DASH MPD, HLS-masterafspeellijst, HLS variantafspeellijst of smooth manifest-URL is niet toegevoegd aan de prefetch-header.

  • Zijn prefetch-URL's relatief of absoluut?

    Hoewel Akamai CDN beide toestaat, biedt de Media Services-oorsprong alleen relatieve URL's voor het prefetch-pad, omdat er geen duidelijk voordeel is bij het gebruik van absolute URL's.

  • Werkt deze functie met inhoud die met DRM is beveiligd?

    Ja, omdat deze functie op HTTP-niveau werkt, wordt er geen segment/fragment gedecodeerd of geparseerd. Het maakt niet uit of de inhoud is versleuteld of niet.

  • Werkt deze functie met SSAI (Server Side Ad Insertion)?

    Dit werkt voor de oorspronkelijke/hoofdinhoud (de oorspronkelijke video-inhoud voordat de advertentie wordt ingevoegd), omdat SSAI de tijdstempel van de broninhoud niet wijzigt van de oorsprong van Media Services. Of deze functie werkt met advertentie-inhoud, is afhankelijk van of de oorsprong van de advertentie Origin-Assist ondersteunt. Als advertentie-inhoud bijvoorbeeld ook wordt gehost in Azure Media Services (dezelfde of afzonderlijke oorsprong), wordt advertentie-inhoud ook vooraf gefetched.

  • Werkt deze functie met UHD-/HEVC-inhoud?

    Ja.

Instructies, zelfstudies en voorbeelden

-CDN-optimalisaties - inschakelenOrigin Shield inschakelen

Help en ondersteuning

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