Best practices voor media services voor live streamen

Klanten vragen vaak hoe ze de latentie van hun livestream kunnen verminderen. In dit artikel worden de best practices beschreven voor het bereiken van livestreams met lage latentie, naast het coderen van livegebeurtenissen.

Notitie

Lees voordat u doorgaat met het lezen van dit artikel het artikel HLS met lage latentie (LL-HLS) om inzicht te krijgen in lage latentie met livegebeurteniscodering. Ga vervolgens terug naar deze handleiding om te begrijpen wat nog meer van invloed kan zijn op streaminglatentie.

Er zijn veel factoren die de end-to-end latentie van een stream bepalen, naast de wijze waarop de media worden gecodeerd. Hier volgen enkele die u moet overwegen:

  1. Vertragingen aan de kant van de bijdrage-encoder. Wanneer klanten coderingssoftware zoals OBS Studio, Wirecast of andere gebruiken om een RTMP-livestream naar Media Services te verzenden. Instellingen op deze software zijn van invloed op de end-to-end latentie van een livestream.

  2. Vertragingen in de pijplijn voor live streamen in Azure Media Services

  3. CDN-prestaties

  4. Bufferalgoritmen van de videospeler en netwerkvoorwaarden aan de clientzijde

  5. Timing van het inrichten

Bijdrage-encoder

U hebt de controle over de instellingen van de bron-encoderinstellingen voordat de RTMP-stream Media Services bereikt. Hier volgen enkele aanbevelingen voor de instellingen waarmee u de laagst mogelijke latentie krijgt:

  1. Kies de fysieke regio die zich het dichtst bij uw bijdrage-encoder bevindt voor uw Media Services-account. Dit zorgt ervoor dat u een goede netwerkverbinding hebt met het Media Services-account.

  2. Gebruik een consistente fragmentgrootte. We raden een GOP-grootte van 2 seconden aan. De standaardwaarde voor sommige encoders, zoals OBS, is 8 seconden. Zorg ervoor dat u deze instelling wijzigt.

  3. Gebruik de GPU-encoder als uw coderingssoftware dit toestaat. Hiermee kunt u CPU-werk offloaden naar de GPU.

  4. Gebruik een coderingsprofiel dat is geoptimaliseerd voor lage latentie. Als u bijvoorbeeld met OBS Studio de Nvidia H.264-encoder gebruikt, ziet u mogelijk de vooraf ingestelde 'nullatentie'.

  5. Inhoud verzenden die niet hoger is in resolutie dan wat u van plan bent te streamen. Als u bijvoorbeeld standaard 720p-codering van livegebeurtenissen gebruikt, verzendt u een stream die al op 720p is.

  6. Houd uw framesnelheid op 30fps of lager, tenzij u passthrough-livegebeurtenissen gebruikt. Hoewel we 60 fps-invoer voor livegebeurtenissen ondersteunen, is onze coderingsuitvoer voor livegebeurtenissen nog steeds niet hoger dan 30 fps. Voor HLS met lage latentie wordt de vaste framesnelheid aanbevolen en mag de maximale frameduur niet langer zijn dan 0,5 seconden voor de beste ervaring.

Configuratie van de Azure Media Services-livegebeurtenis

Hier volgen enkele configuraties die u helpen de latentie in onze pijplijn te verminderen:

  1. Gebruik de streamopties met lage latentie voor livegebeurtenissen. Voor de streamopties Standard-codering (maximaal 720p) en Premium-codering (maximaal 1080p), tenzij u een DVR-venster van meer dan 6 uur of een soepele streaming-uitvoer nodig hebt, gebruikt u de instelling Stroomlatentie met lage latentie.

  2. We raden u aan CMAF-uitvoer te kiezen voor zowel HLS- als DASH-weergave. Hierdoor kunt u dezelfde fragmenten voor beide indelingen delen. Het verhoogt de verhouding tussen cachetreffers wanneer CDN wordt gebruikt. Bijvoorbeeld:

    Type Indeling URL-voorbeeld
    HLS CMAF format=m3u8-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=m3u8-cmaf)
    MPEG-DASH CMAF format=mpd-time-cmaf https://amsv3account-usw22.streaming.media.azure.net/21b17732-0112-4d76-b526-763dcd843449/ignite.ism/manifest(format=mpd-time-cmaf)
  3. Als u TS-uitvoer moet kiezen, gebruikt u een HLS-verpakkingsverhouding van 1. Hierdoor kunnen we slechts één fragment in één HLS-segment verpakken. U krijgt niet de volledige voordelen van LL-HLS in systeemeigen Apple-spelers.

Optimalisaties voor spelers

Wanneer u een videospeler kiest en configureert, moet u ervoor zorgen dat u instellingen gebruikt die zijn geoptimaliseerd voor een lagere latentie.

Media Services ondersteunt verschillende streamingprotocoluitvoer: DASH, HLS met TS-uitvoer en HLS met CMAF-fragmenten. Wanneer u de LowLatencyV2 streamoptie gebruikt, moet u een speler vinden die ONDERSTEUNING biedt voor HLS met lage latentie (LL-HLS). Afhankelijk van de implementatie van de speler zijn bufferbeslissingen van invloed op de latentie die een kijker waarneemt. Slechte netwerkomstandigheden of standaardalgoritmen die de kwaliteit en stabiliteit van het afspelen bevorderen, kunnen ertoe leiden dat spelers besluiten om meer inhoud vooraf te bufferen om onderbrekingen tijdens het afspelen te voorkomen. Deze buffers, vóór en tijdens de afspeelsessies, zouden de end-to-end-latentie verbeteren.

Wanneer Azure Media Player wordt gebruikt, optimaliseert het profiel Lage latentie heuristiek de speler om de laagst mogelijke latentie aan de kant van de speler te hebben. Deze speler ondersteunt alleen DASH, tenzij deze wordt gebruikt in Safari op Apple-apparaten.

CDN-keuze en -optimalisaties

Streaming-eindpunten zijn de oorspronkelijke servers die de live- en VOD-streaming-inhoud rechtstreeks aan het CDN of aan de klant leveren. U kunt het beste een Content Delivery Network (CDN) met een afgeschermde oorsprong gebruiken om ervoor te zorgen dat verkeer voor uw media-inhoud efficiënt wordt geleverd.

U wordt aangeraden Azure CDN te gebruiken, dat wordt geleverd door Verizon (Standard of Premium). We hebben de integratie-ervaring geoptimaliseerd, zodat een klant dit CDN kan configureren met één selectie in de Azure Portal. Zorg ervoor dat u Origin Shield en streaming-optimalisaties inschakelt voor uw CDN-eindpunt wanneer u uw streaming-eindpunt start.

Onze klanten hebben ook goede ervaringen met hun eigen CDN. Zorg ervoor dat er maatregelen worden genomen op het CDN om de oorsprong te beschermen tegen overmatig verkeer.

U kunt de prestaties ook verbeteren door regels voor het CDN-profiel te configureren. Zie CDN-optimalisaties inschakelen.

Schalen van streaming-eindpunten

Notitie

Een standaard streaming-eindpunt/-oorsprong is een gedeelde resource waarmee klanten met weinig verkeersvolumes inhoud kunnen streamen tegen lagere kosten. U gebruikt geen standaardstreaming-eindpunt om streaming-eenheden te schalen als u grote verkeersvolumes verwacht of als u van plan bent een CDN te gebruiken.

Een premium streaming-eindpunt/-oorsprong biedt klanten meer flexibiliteit en isolatie om te schalen door toegewezen streaming-eenheden toe te voegen of te verwijderen. Een streaming-eenheid is een rekenresource die is toegewezen aan een streaming-eindpunt. Elke streaming-eenheid kan ongeveer 200 Mbps aan verkeer streamen.

Hoewel u veel livegebeurtenissen tegelijk kunt streamen met hetzelfde streaming-eindpunt, is de maximale standaardstreaming-eenheden die nodig zijn voor één streaming-eindpunt 10. U kunt een ondersteuningsticket openen om meer dan de standaard 10 aan te vragen.

Bepalen welke premium streaming-eenheden nodig zijn

Er zijn twee stappen om het aantal streaming-eindpunten en streaming-eenheden te bepalen dat nodig is:

  1. Bepaal het totale aantal benodigde uitgaande gegevens.

  2. Deel het totale uitgaande verkeer door 200, wat de maximale Mbps is die elke streaming-eenheid kan streamen.

Het totale aantal benodigde uitgaande gegevens bepalen

Bepaal het totale aantal benodigde uitgaand verkeer met behulp van de volgende formule.

Totaal benodigd uitgaand verkeer = gemiddelde bandbreedte x aantal gelijktijdige kijkers x procentdat wordt verwerkt door het streaming-eindpunt.

Laten we eens kijken naar elk van de vermenigvuldigers:

Gemiddelde bandbreedte. Wat is de gemiddelde bitsnelheid die u wilt streamen? Met andere woorden, als u meerdere bitrates beschikbaar wilt hebben, welke bitsnelheid is het gemiddelde van alle bitrates die u van plan bent? U kunt dit schatten met behulp van een van de volgende methoden:

Voor een livegebeurtenis met codering:

  • Als u niet weet wat uw gemiddelde bandbreedte wordt, kunt u onze hoogste bitrates gebruiken als een schatting. Onze hoogste bitrate is 5,5 Mbps voor 1080p gecodeerde livegebeurtenissen. Daarom ligt uw gemiddelde bitrate ergens rond de 3,5 Mbps.

  • Bekijk de voorinstelling voor codering die wordt gebruikt voor het coderen van de livegebeurtenis, bijvoorbeeld de preset AdaptiveStreaming(H.264). Bekijk dit uitvoervoorbeeld.

Voor een livegebeurtenis die alleen pass-through gebruikt en geen codering:

  • Controleer de coderingsbitrate-ladder die wordt gebruikt door uw lokale encoder.

Aantal gelijktijdige kijkers. Hoeveel gelijktijdige kijkers worden er verwacht? Dit is misschien moeilijk in te schatten, maar doe uw best op basis van uw klantgegevens. Streamt u een conferentie naar een wereldwijd publiek? Bent u van plan om live te streamen om een reeks producten aan uw klanten te verkopen?

Percentage van het verkeerdat wordt verwerkt doorhet streaming-eindpunt. Dit kan ook worden uitgedrukt als 'het percentage verkeer dat NIET wordt verwerkt door het CDN', omdat dat het getal is dat daadwerkelijk in de formule wordt opgenomen. Dus, met dat in gedachten, wat is de CDN-offload die u verwacht? Als het CDN naar verwachting 90% van het liveverkeer verwerkt, wordt slechts 10% van het verkeer verwacht op het streaming-eindpunt. Het getal dat in de formule wordt gebruikt, is .10. Dit is het percentage verkeer dat wordt verwacht op het streaming-eindpunt.

Het aantal premium streaming-eenheden bepalen dat nodig is

Premium streaming-eenheden nodig = Gemiddelde bandbreedte x aantal kijkers x Percentage van het verkeer dat niet wordt verwerkt door het CDN / 200 Mbps

Voorbeeld

U hebt onlangs een nieuw product uitgebracht en wilt dit presenteren aan uw bestaande klanten. U wilt een lage latentie omdat u uw toch al drukke doelgroep niet wilt frustreren, dus gebruikt u premium streaming-eindpunten en een CDN.

U hebt ongeveer 100.000 klanten, maar ze zullen waarschijnlijk niet allemaal watch uw livegebeurtenis. U denkt dat in het beste geval slechts 1% van hen aanwezig zal zijn, wat uw verwachte gelijktijdige kijkers op 1000 brengt.

Aantal gelijktijdige gebruikers =1.000

U hebt besloten mediaservices te gebruiken om uw livestream te coderen en u gebruikt geen passthrough. U weet niet wat de gemiddelde bandbreedte wordt, maar u weet wel dat u levert in 1080p (hoogste bitrate van 5,5 Mbps), dus uw gemiddelde bandbreedte wordt geschat op 3,5 Mbps voor uw berekeningen.

Gemiddelde bandbreedte =3,5

Aangezien uw doelgroep wereldwijd verspreid is, verwacht u dat het CDN het grootste deel (90%) van het liveverkeer afhandelt. Daarom verwerken de premium streaming-eindpunten slechts 10% van het verkeer.

Percentage verwerkt door het streaming-eindpunt =10% = 0,1

Gebruik de bovenstaande formule:

Totaal benodigd uitgaand verkeer = gemiddelde bandbreedte x aantal gelijktijdige kijkers x procent dat wordt verwerkt door het streaming-eindpunt.

totaal benodigd uitgaand verkeer = 3,5 x 1000 x 0,1

totaal aantal benodigde uitgangen = 350 Mbps

Als u het totale uitgaand verkeer door 200 deelt, bepaalt u dat u 1,75 premium streaming-eenheden nodig hebt.

premium streaming-eenheden nodig = totaal aantal benodigde uitgaande verbindingen/200Mpbs

premium streaming-eenheden nodig = 1,75

We ronden dit getal af op 2, zodat we 2 eenheden nodig hebben.

Gebruik de portal om uw behoeften in te schatten

Met de Azure Portal kunt u de berekeningen vereenvoudigen. Op de streamingpagina kunt u de meegeleverde calculator gebruiken om het geschatte publieksbereik te bekijken wanneer u de gemiddelde bandbreedte, CDN-hitverhouding en het aantal streaming-eenheden wijzigt.

  1. Selecteer op de media services-accountpagina Steaming-eindpunten in het menu.

  2. Voeg een nieuw streaming-eindpunt toe door Streaming-eindpunt toevoegen te selecteren.

  3. Geef het streaming-eindpunt een naam.

  4. Selecteer Premium-streaming-eindpunt als het type streaming-eindpunt.

  5. Aangezien u op dit moment nog maar een schatting krijgt, moet u het streaming-eindpunt niet starten nadat u het hebt gemaakt. Selecteer Nee.

  6. Selecteer Standard Verizon of Premium Verizon voor uw CDN-prijscategorie. De profielnaam wordt dienovereenkomstig gewijzigd. Laat de naam zoals deze is voor deze oefening.

  7. Selecteer Nieuwe maken voor het CDN-profiel.

  8. Selecteer Maken. Zodra het eindpunt is geïmplementeerd, wordt het scherm streaming-eindpunten weergegeven.

  9. Selecteer het streaming-eindpunt dat u zojuist hebt gemaakt. Het scherm van het streaming-eindpunt wordt weergegeven met schattingen van het bereik van het publiek.

  10. De standaardinstelling voor het streaming-eindpunt met 1 streaming-eenheid geeft aan dat het naar schatting wordt gestreamd naar 571 gelijktijdige kijkers met 3,5 Mbps met 90% van het CDN en 10% van het streaming-eindpunt.

  11. Wijzig het percentage van de uitgaande bron van 90% van CDN-cache in 0%. De calculator schat dat u zonder CDN kunt streamen naar 57 gelijktijdige kijkers met 3,5 Mbps bij 200 Mbps.

  12. Wijzig nu de bron Uitgaand verkeer terug naar 90%.

  13. Wijzig vervolgens de streaming-eenheden in 2. De calculator schat dat u kunt streamen naar 1143 gelijktijdige kijkers met 3,5 Mbps met 4000Mpbs, waarbij het CDN 90% van het verkeer verwerkt.

  14. Selecteer Opslaan.

  15. U kunt het streaming-eindpunt starten en er verkeer naar verzenden. Met de metrische gegevens onder aan het scherm wordt het werkelijke verkeer bijgehouden.

Timing

U kunt streaming-eenheden 1 uur voor het verwachte piekgebruik inrichten om ervoor te zorgen dat streaming-eenheden gereed zijn.

Help en ondersteuning

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