Metodguide för liveuppspelning i Media Services
Kunder frågar ofta hur de kan minska svarstiden för sin liveström. I den här artikeln beskrivs metodtips för att uppnå liveströmmar med låg latens med förutom livehändelsekodning.
Not
Innan du fortsätter att läsa den här artikeln läser du artikeln HLS (LL-HLS) för att förstå låg svarstid med livehändelsekodning. Gå sedan tillbaka till den här guiden för att förstå vad mer som kan påverka svarstiden för strömning.
Det finns många faktorer som avgör svarstiden från slutpunkt till slutpunkt för en ström förutom hur mediet kodas. Här följer några som du bör tänka på:
Fördröjningar på bidragskodarsidan. När kunder använder en kodningsprogramvara som OBS Studio, Wirecast eller andra för att skicka en RTMP-liveström till Media Services. Inställningarna för den här programvaran påverkar svarstiden från slutpunkt till slutpunkt för en liveström.
Fördröjningar i pipelinen för liveuppspelning i Azure Media Services
CDN-prestanda
Buffringsalgoritmer för videospelaren och nätverksvillkoren på klientsidan
Tidpunkt för etablering
Bidragskodare
Du har kontroll över inställningarna för källkodarens inställningar innan RTMP-strömmen når Media Services. Här följer några rekommendationer för de inställningar som skulle ge dig lägsta möjliga svarstid:
Välj den fysiska region som är närmast din bidragskodare för ditt Media Services-konto. Detta säkerställer att du har en bra nätverksanslutning till Media Services-kontot.
Använd en konsekvent fragmentstorlek. Vi rekommenderar en GOP-storlek på 2 sekunder. Standardvärdet för vissa kodare, till exempel OBS, är 8 sekunder. Kontrollera att du ändrar den här inställningen.
Använd GPU-kodaren om din kodningsprogramvara låter dig göra det. På så sätt kan du avlasta CPU-arbetet till GPU:n.
Använd en kodningsprofil som är optimerad för korta svarstider. Om du till exempel använder Nvidia H.264-kodaren med OBS Studio kan du se förinställningen "noll svarstid".
Skicka innehåll som inte är högre i upplösning än vad du planerar att strömma. Om du till exempel använder livehändelser med standardkodning av 720p skickar du en ström som redan är på 720p.
Håll din framerate på 30fps eller lägre om du inte använder direkt livehändelser. Vi stöder 60 fps-indata för livehändelser, men vår kodning av livehändelseutdata är fortfarande inte över 30 fps. För HLS-med låg svarstid rekommenderas den fasta bildrutefrekvensen och den maximala bildrutevaraktigheten får inte överstiga 0,5 sekunder för bästa möjliga upplevelse.
Konfiguration av livehändelsen för Azure Media Services
Här är några konfigurationer som hjälper dig att minska svarstiden i pipelinen:
Använd strömalternativen med låg latens för livehändelser. För standardkodning (upp till 720p) och Premium-kodning (upp till 1 080p) strömalternativ, såvida du inte behöver ett DVR-fönster som är längre än 6 timmar eller smidiga strömmande utdata, använder du inställningen svarstid för låg latens.
Vi rekommenderar att du väljer CMAF-utdata för både HLS- och DASH-uppspelning. På så sätt kan du dela samma fragment för båda formaten. Det ökar ditt cache-träffförhållande när CDN används. Till exempel:
Typ Format URL-exempel 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)
Om du måste välja TS-utdata använder du ett HLS-förpackningsförhållande på 1. På så sätt kan vi bara packa ett fragment i ett HLS-segment. Du får inte alla fördelar med LL-HLS hos inbyggda Apple-spelare.
Spelaroptimeringar
När du väljer och konfigurerar en videospelare kontrollerar du att du använder inställningar som är optimerade för kortare svarstider.
Media Services stöder olika utdata från strömningsprotokoll – DASH, HLS med TS-utdata och HLS med CMAF-fragment. När du använder alternativet LowLatencyV2
stream måste du hitta en spelare som har stöd för HLS med låg svarstid (LL-HLS). Beroende på spelarens implementering påverkar buffringsbeslut den svarstid som en tittare observerar. Dåliga nätverksförhållanden eller standardalgoritmer som gynnar uppspelningens kvalitet och stabilitet kan leda till att spelarna bestämmer sig för att buffrar mer innehåll i förväg för att förhindra avbrott under uppspelningen. Dessa buffertar, före och under uppspelningssessionerna, skulle lägga till svarstiden från slutpunkt till slutpunkt.
När Azure Media Player används optimerar Heuristics-profilen med låg latens spelaren så att den får lägsta möjliga svarstid på spelarsidan. Den här spelaren stöder endast DASH om den inte används på Safari på Apple-enheter.
CDN-val och optimeringar
Slutpunkter för direktuppspelning är ursprungsservrarna som levererar live- och VOD-strömmande innehåll till CDN eller till kunden direkt. Det är bäst att använda ett content delivery network (CDN) med avskärmat ursprung för att säkerställa att trafiken för ditt medieinnehåll levereras effektivt.
Vi rekommenderar att du använder Azure CDN som tillhandahålls av Verizon (Standard eller Premium). Vi har optimerat integreringsupplevelsen så att en kund kan konfigurera detta CDN med ett enda val i Azure-portalen. Se till att aktivera Origin Shield- och strömningsoptimeringar för CDN-slutpunkten när du startar slutpunkten för direktuppspelning.
Våra kunder har också goda erfarenheter av att ta med egna CDN. Se till att åtgärder vidtas på CDN för att skydda ursprunget från överdriven trafik.
Du kan också förbättra prestanda genom att konfigurera regler för CDN-profilen. Se Så här aktiverar du CDN-optimeringar.
Skalning av slutpunkter för direktuppspelning
Not
En standardslutpunkt/ursprung för direktuppspelning är en delad resurs som gör att kunder med låga trafikvolymer kan strömma innehåll till en lägre kostnad. Du skulle inte använda en standardslutpunkt för direktuppspelning för att skala strömningsenheter om du förväntar dig stora trafikvolymer eller om du planerar att använda ett CDN.
En premium slutpunkt/ursprung för direktuppspelning ger större flexibilitet och isolering för kunder att skala genom att lägga till eller ta bort dedikerade strömningsenheter. En strömningsenhet är en beräkningsresurs som allokerats till en slutpunkt för direktuppspelning. Varje strömningsenhet kan strömma cirka 200 Mbit/s trafik.
Du kan strömma många livehändelser samtidigt med samma slutpunkt för direktuppspelning, men den högsta standarduppspelningsenheterna som behövs för en slutpunkt för direktuppspelning är 10. Du kan öppna ett supportärende för att begära mer än standard 10.
Fastställa vilka premiumuppspelningsenheter som behövs
Det finns två steg för att fastställa antalet slutpunkter för direktuppspelning och enheter för direktuppspelning som behövs:
Fastställ den totala utgående trafik som behövs.
Dividera den totala utgående med 200, vilket är det maximala antalet Mbit/s som varje strömningsenhet kan strömma.
Fastställa den totala utgående trafik som behövs
Fastställ den totala utgående trafik som behövs med hjälp av följande formel.
Totalt antal utgående värden som behövs = genomsnittlig bandbredd x antal samtidiga användare x procenthanteras av slutpunkten för direktuppspelning.
Låt oss ta en titt på var och en av multiplikatorerna i tur och ordning:
Genomsnittlig bandbredd. Vilken genomsnittliga bithastighet som du planerar att strömma? Med andra ord, om du ska ha flera bithastigheter tillgängliga, vilken bithastighet är medelvärdet av alla bithastigheter som du planerar för? Du kan beräkna detta med någon av följande metoder:
För en livehändelse som innehåller kodning:
Om du inte vet vad din genomsnittliga bandbredd kommer att bli kan du använda våra högsta bithastigheter som en uppskattning. Vår högsta bithastighet är 5,5 Mbit/s för 1 080p-kodade livehändelser. Därför kommer din genomsnittliga bithastighet att ligga någonstans runt 3,5 Mbit/s.
Titta på kodningsförinställningen som används för att koda livehändelsen, till exempel förinställningen AdaptiveStreaming(H.264). Se det här utdataexemplet.
För en livehändelse som helt enkelt använder genomströmning och inte kodning:
- Kontrollera stege för kodningsbithastighet som används av din lokala kodare.
Antal samtidiga användare. Hur många samtidiga tittare förväntas? Detta kan vara svårt att uppskatta, men gör ditt bästa baserat på dina kunddata. Strömmar du en konferens till en global publik? Planerar du att livestreama för att sälja en uppsättning produkter till dina kunder?
Procent av trafikenhanteras avslutpunkten för direktuppspelning. Detta kan också uttryckas som "den procent av trafiken som INTE hanteras av CDN" eftersom det är det tal som faktiskt går in i formeln. Så med det i åtanke, vad är CDN-avlastningen du förväntar dig? Om CDN förväntas hantera 90% av livetrafiken förväntas endast 10% av trafiken på slutpunkten för direktuppspelning. Talet som används i formeln är .10, vilket är den procentandel av trafiken som förväntas på slutpunkten för direktuppspelning.
Fastställa antalet premiumuppspelningsenheter som behövs
Premium-strömningsenheter som behövs = Genomsnittlig bandbredd x antal tittare x Procentandel av trafiken som inte hanteras av CDN/200 Mbit/s
Exempel
Du har nyligen släppt en ny produkt och vill presentera den för dina etablerade kunder. Du vill ha låg svarstid eftersom du inte vill hindra din redan upptagna målgrupp, så du använder premium-slutpunkter för direktuppspelning och ett CDN.
Du har cirka 100 000 kunder, men de kommer förmodligen inte alla att titta på ditt liveevenemang. Du antar att i bästa fall kommer endast 1% av dem att delta, vilket ger dina förväntade samtidiga tittare till 1 000.
Antal samtidiga användare =1 000
Du har bestämt dig för att använda Media Services för att koda din liveström och inte kommer att använda direktströmning. Du vet inte vad den genomsnittliga bandbredden kommer att bli, men du vet att du kommer att leverera i 1080p (högsta bithastighet på 5,5 Mbit/s), så din genomsnittliga bandbredd uppskattas till 3,5 Mbit/s för dina beräkningar.
Genomsnittlig bandbredd =3,5
Eftersom målgruppen är utspridd över hela världen förväntar du dig att CDN hanterar de flesta (90%) av livetrafiken. Därför hanterar premium-slutpunkterna för direktuppspelning endast 10% av trafiken.
Procent som hanteras av slutpunkten för direktuppspelning =10% = 0,1
Med hjälp av formeln ovan:
Totalt antal utgående värden som behövs = genomsnittlig bandbredd x antal samtidiga tittare x procent som hanteras av slutpunkten för direktuppspelning.
totala utgående krävs = 3,5 x 1 000 x 0,1
totala utgående trafik som behövs = 350 Mbit/s
Om du delar upp den totala utgående gränsen med 200 bestämmer du att du behöver 1,75 premiumuppspelningsenheter.
premiumuppspelningsenheter som behövs = totala utgående/200Mpbs
premiumuppspelningsenheter som behövs = 1,75
Vi avrundar det här numret till 2, vilket ger oss 2 enheter som behövs.
Använd portalen för att uppskatta dina behov
Azure-portalen kan hjälpa dig att förenkla beräkningarna. På strömningssidan kan du använda kalkylatorn för att se den uppskattade målgruppens räckvidd när du ändrar den genomsnittliga bandbredden, CDN-träffkvoten och antalet strömningsenheter.
På sidan mediatjänster väljer du Steaming-slutpunkter på menyn.
Lägg till en ny slutpunkt för direktuppspelning genom att välja Lägg till slutpunkt för direktuppspelning.
Ge slutpunkten för direktuppspelning ett namn.
Välj Premium-slutpunkt för direktuppspelning för slutpunktstypen för direktuppspelning.
Eftersom du just nu får en uppskattning ska du inte starta slutpunkten för direktuppspelning när du har skapat den. Välj Nej.
Välj Standard Verizon eller Premium Verizon för din CDN-prisnivå. Profilnamnet ändras i enlighet med detta. Lämna namnet som det är för den här övningen.
För CDN-profilen väljer du Skapa ny.
Välj Skapa. När slutpunkten har distribuerats visas skärmen för direktuppspelningsslutpunkter.
Välj den slutpunkt för direktuppspelning som du nyss skapade. Slutpunktsskärmen för direktuppspelning visas med uppskattningar för målgruppsuppskattningar.
Standardinställningen för slutpunkten för direktuppspelning med 1 strömningsenhet visar att den beräknas strömma till 571 samtidiga användare på 3,5 Mbit/s med 90% av CDN och 10% av slutpunkten för direktuppspelning.
Ändra procentandelen av utgående källa från 90% från CDN-cache till 0%. Kalkylatorn beräknar att du kommer att kunna strömma till 57 samtidiga användare på 3,5 Mbit/s på 200 Mbit/s utan ett CDN.
Ändra nu utgående källa tillbaka till 90%.
Ändra sedan strömmande enheter till 2. Kalkylatorn beräknar att du kommer att kunna strömma till 1143 samtidiga tittare på 3,5 Mbit/s med 4 000 Mbit/s med CDN-hanteringen 90% av trafiken.
Välj Spara.
Du kan starta slutpunkten för direktuppspelning och försöka skicka trafik till den. Måtten längst ned på skärmen spårar faktisk trafik.
Timing
Du kanske vill etablera strömningsenheter 1 timme före den förväntade toppanvändningen för att säkerställa att strömningsenheterna är klara.
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:
- Q & A
-
Stack Overflow. Tagga frågor med
azure-media-services
. - @MSFTAzureMedia eller använd @AzureSupport för att begära support.
- Öppna ett supportärende via Azure-portalen.