Best practices voor live streamen van Media Services
Klanten vragen vaak hoe ze de latentie van hun livestream kunnen verminderen. In dit artikel worden aanbevolen procedures beschreven voor het bereiken van livestreams met lage latentie, naast het coderen van livegebeurtenissen.
Notitie
Lees voordat u verdergaat met het lezen van dit artikel het HLS met lage latentie (LL-HLS) artikel om inzicht te hebben in lage latentie met codering van livegebeurtenissen. 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 hoe de media worden gecodeerd. Hier volgen enkele die u moet overwegen:
Vertragingen aan de zijde van de bijdrage-encoder. Wanneer klanten een coderingssoftware zoals OBS Studio, Wirecast of anderen gebruiken om een RTMP-livestream naar Media Services te verzenden. Instellingen voor deze software zijn van invloed op de end-to-end latentie van een livestream.
Vertragingen in de pijplijn voor live streamen in Azure Media Services
CDN-prestaties
Bufferalgoritmen van de videospeler en netwerkvoorwaarden aan de clientzijde
Timing van inrichting
Bijdrage-encoder
U hebt de controle over de instellingen van de instellingen van de broncoderingsprogramma's voordat de RTMP-stream Media Services bereikt. Hier volgen enkele aanbevelingen voor de instellingen waarmee u de laagst mogelijke latentie krijgt:
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.
Gebruik een consistente fragmentgrootte. We raden een GOP-grootte van 2 seconden aan. De standaardinstelling voor sommige encoders, zoals OBS, is 8 seconden. Zorg ervoor dat u deze instelling wijzigt.
Gebruik de GPU-encoder als u dit kunt doen met uw coderingssoftware. Hierdoor kunt u CPU-werk offloaden naar de GPU.
Gebruik een coderingsprofiel dat is geoptimaliseerd voor lage latentie. Als u bijvoorbeeld de Nvidia H.264-encoder gebruikt met OBS Studio, ziet u mogelijk de vooraf ingestelde 'nullatentie'.
Inhoud verzenden die niet hoger is dan wat u wilt streamen. Als u bijvoorbeeld 720p-standaardcoderingsgebeurtenissen gebruikt, verzendt u een stream die al op 720p staat.
Houd uw framerate bij 30fps of lager, tenzij u passthrough-livegebeurtenissen gebruikt. Hoewel we 60 fps-invoer voor livegebeurtenissen ondersteunen, is onze coderingsuitvoer van livegebeurtenissen nog steeds niet hoger dan 30 fps. Voor HLS-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 livegebeurtenis van Azure Media Services
Hier volgen enkele configuraties waarmee u de latentie in onze pijplijn kunt verminderen:
Gebruik de streamopties met lage latentie voor livegebeurtenissen. Voor de standard-coderingsopties (maximaal 720p) en Premium-codering (maximaal 1080p) stroomopties, tenzij u een DVR-venster langer dan 6 uur of vloeiende streaming-uitvoer nodig hebt, gebruikt u de instelling voor latentie van de stroom met lage latentie.
U wordt aangeraden CMAF-uitvoer te kiezen voor zowel HLS- als DASH-afspelen. Hiermee kunt u dezelfde fragmenten voor beide indelingen delen. Hiermee verhoogt u de verhouding tussen cachetreffers wanneer CDN wordt gebruikt. Bijvoorbeeld:
Type Formatteren 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)
Als u TS-uitvoer moet kiezen, gebruikt u een HLS-verpakkingsverhouding van 1. Hierdoor kunnen we slechts één fragment in één HLS-segment inpakken. U krijgt niet de volledige voordelen van LL-HLS in systeemeigen Apple-spelers.
Optimalisaties van spelers
Wanneer u een videospeler kiest en configureert, moet u instellingen gebruiken 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 optie LowLatencyV2
stream gebruikt, moet u een speler vinden die HLS met lage latentie (LL-HLS) ondersteunt. Afhankelijk van de implementatie van de speler hebben bufferbeslissingen invloed op de latentie die een kijker bekijkt. Slechte netwerkomstandigheden of standaardalgoritmen die de kwaliteit en stabiliteit van het afspelen bevorderen, kunnen ervoor zorgen dat spelers vooraf meer inhoud bufferen om onderbrekingen tijdens het afspelen te voorkomen. Deze buffers, vóór en tijdens de afspeelsessies, zouden worden toegevoegd aan de end-to-end-latentie.
Wanneer Azure Media Player wordt gebruikt, optimaliseert de heuristiek met lage latentie profiel de speler zo min mogelijk latentie aan de spelerzijde. Deze speler ondersteunt alleen DASH, tenzij deze wordt gebruikt op 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. Het is het beste om een CDN (Content Delivery Network) met een afgeschermde oorsprong te gebruiken om ervoor te zorgen dat verkeer voor uw media-inhoud efficiënt wordt geleverd.
We raden u aan 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 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 op het CDN worden genomen om de oorsprong van overmatig verkeer af teschermen.
U kunt ook de prestaties verbeteren door regels voor het CDN-profiel te configureren. Zie CDN-optimalisaties inschakelen.
Schalen van streaming-eindpunten
Notitie
Een standaardstreaming-eindpunt/-oorsprongen is een gedeelde resource waarmee klanten met weinig verkeer inhoud tegen lagere kosten kunnen streamen. U geen een standaardstreaming-eindpunt gebruiken om streaming-eenheden te schalen als u grote verkeersvolumes verwacht of als u een CDN wilt gebruiken.
Een premium streaming-eindpunt/-oorsprong biedt meer flexibiliteit en isolatie voor klanten 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 gelijktijdig veel livegebeurtenissen tegelijk kunt streamen met hetzelfde streaming-eindpunt, is het maximum aantal standaardstreamingseenheden dat nodig is 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:
Bepaal het totale aantal uitgaande verkeer dat nodig is.
Deel het totale uitgaand verkeer door 200, wat de maximale Mbps is die elke streaming-eenheid kan streamen.
Bepaal het totale aantal uitgaande verkeer dat nodig is
Bepaal het totale uitgaande verkeer dat nodig is met behulp van de volgende formule.
Totaal uitgaande verkeer = gemiddelde bandbreedte x aantal gelijktijdige kijkers x procentverwerkt door het streaming-eindpunt.
Laten we eens kijken naar elk van de vermenigvuldigers:
Gemiddelde bandbreedte. Wat is de gemiddelde bitrate die u wilt streamen? Met andere woorden, als u meerdere bitrates beschikbaar hebt, welke bitsnelheid is het gemiddelde van alle bitrates waarvoor u van plan bent? U kunt dit schatten met behulp van een van de volgende methoden:
Voor een livegebeurtenis die coderings-bevat:
Als u niet weet wat uw gemiddelde bandbreedte is, kunt u onze hoogste bitrates gebruiken als schatting. Onze hoogste bitrate is 5,5 Mbps voor 1080p gecodeerde livegebeurtenissen, daarom is uw gemiddelde bitrate ergens rond de 3,5 Mbps.
Bekijk de vooraf ingestelde codering die wordt gebruikt voor het coderen van de livegebeurtenis, bijvoorbeeld de vooraf ingestelde AdaptiveStreaming (H.264). Zie dit voorbeeld van uitvoer.
Voor een livegebeurtenis die simpelweg passthrough 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 kan moeilijk te schatten zijn, maar doe uw best op basis van uw klantgegevens. Streamt u een conferentie naar een wereldwijd publiek? Bent u van plan om een set producten te verkopen aan uw klanten?
percentage verkeerverwerkt 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 ingevoerd. Dus, met dat in gedachten, wat is de CDN offload die u verwacht? Als het CDN naar verwachting 90% van het liveverkeer verwerkt, wordt er 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 verkeer dat niet wordt verwerkt door de CDN/200 Mbps
Voorbeeld
U hebt onlangs een nieuw product uitgebracht en u wilt het aan uw gevestigde klanten presenteren. U wilt een lage latentie omdat u uw al bezet publiek niet wilt frustreren, dus u gebruikt premium streaming-eindpunten en een CDN.
U hebt ongeveer 100.000 klanten, maar ze gaan waarschijnlijk niet allemaal uw livegebeurtenis bekijken. U denkt dat in het beste geval slechts 1% van hen aanwezig zullen zijn, wat uw verwachte gelijktijdige kijkers naar 1000 brengt.
Aantal gelijktijdige gebruikers =1000
U hebt besloten dat u Media Services gaat gebruiken om uw livestream te coderen en geen passthrough gebruikt. U weet niet wat de gemiddelde bandbreedte wordt, maar u weet wel dat u in 1080p (
Gemiddelde bandbreedte =3,5
Aangezien uw publiek wereldwijd verspreid is, verwacht u dat het CDN de meeste (90%) van het live verkeer afhandelt. Daarom verwerken de premium streaming-eindpunten slechts 10% van het verkeer.
percentage dat wordt verwerkt door het streaming-eindpunt =10% = 0,1
Gebruik de bovenstaande formule:
Totaal aantal uitgaande verbindingen = gemiddelde bandbreedte x aantal gelijktijdige kijkers x percentage dat wordt verwerkt door het streaming-eindpunt.
totale uitgaande verkeer nodig = 3,5 x 1.000 x 0,1
totale uitgaande verkeer = 350 Mbps
Door het totale uitgaand verkeer met 200 te delen, bepaalt u dat u 1,75 premium streaming-eenheden nodig hebt.
premium streaming-eenheden nodig = totaal aantal uitgaande eenheden/200Mpbs
premium streaming-eenheden nodig = 1,75
We afronden dit getal naar boven af op 2, waardoor we 2 eenheden nodig hebben.
De portal gebruiken om uw behoeften te schatten
Azure Portal kan u helpen bij het vereenvoudigen van de berekeningen. Op de streamingpagina kunt u de opgegeven calculator gebruiken om het geschatte bereik van de doelgroep te zien wanneer u de gemiddelde bandbreedte, cdn hit ratio en het aantal streaming-eenheden wijzigt.
Selecteer op de pagina Media Services-account Steaming-eindpunten in het menu.
Voeg een nieuw streaming-eindpunt toe door Streaming-eindpunt toevoegente selecteren.
Geef het streaming-eindpunt een naam.
Selecteer Premium-streaming-eindpunt voor het type streaming-eindpunt.
Omdat u op dit moment slechts een schatting krijgt, start u het streaming-eindpunt niet na het maken. Selecteer Geen.
Selecteer Standard Verizon- of Premium Verizon- voor uw CDN-prijscategorie. De profielnaam wordt dienovereenkomstig gewijzigd. Laat de naam staan zoals deze is voor deze oefening.
Selecteer voor het CDN-profiel Nieuwemaken.
Selecteer maken. Zodra het eindpunt is geïmplementeerd, wordt het scherm met streaming-eindpunten weergegeven.
Selecteer het streaming-eindpunt dat u zojuist hebt gemaakt. Het scherm voor het streaming-eindpunt wordt weergegeven met schattingen van het publiek.
De standaardinstelling voor het streaming-eindpunt met 1 streaming-eenheid laat zien dat het naar schatting 571 gelijktijdige kijkers met 3,5 Mbps streamt met 90% van het CDN en 10% van het streaming-eindpunt.
Wijzig het percentage van de Egress-bron van 90% van cdn-cache in 0%. De calculator schat dat u kunt streamen naar 57 gelijktijdige kijkers met 3,5 Mbps bij 200 Mbps zonder een CDN.
Wijzig nu de Egress-bron terug naar 90%.
Wijzig vervolgens de streaming-eenheden in 2. De calculator schat dat u met de CDN 90% verkeer kunt streamen naar 1143 gelijktijdige kijkers met 3,5 Mbps met 4000Mpbs.
Selecteer opslaan.
U kunt het streaming-eindpunt starten en proberen verkeer naar het eindpunt te verzenden. Met de metrische gegevens onder aan het scherm wordt het werkelijke verkeer bijgehouden.
Timing
Mogelijk wilt u streaming-eenheden 1 uur voor het verwachte piekgebruik inrichten om ervoor te zorgen dat streaming-eenheden gereed zijn.
Hulp en ondersteuning krijgen
U kunt contact opnemen met Media Services met vragen of onze updates volgen op een van de volgende manieren:
- Q & A-
-
Stack Overflow-. Tag vragen met
azure-media-services
. - @MSFTAzureMedia of @AzureSupport gebruiken om ondersteuning aan te vragen.
- Open een ondersteuningsticket via Azure Portal.