HLSEncodingStorage

Adaptiva bithastighetsstegar: från 360p till 4K och diskkostnad

Hur adaptiv strömning väljer kvalitet, vilka nivåer och bithastigheter UFOLOAD:s konverterare faktiskt använder och vad varje nivå kostar i disk per timme.

En adaptiv bithastighetsstege är den uppsättning versioner av en video som en strömningsspelare kan välja mellan. Varje steg har en upplösning och en bithastighet; spelaren börjar på ett av dem, ser hur snabbt segmenten laddas ner och flyttar upp eller ner när anslutningen ändras. Med rätt stege får både en tittare på tåget och en tittare framför en 4K-tv smidig uppspelning från en och samma uppladdning. Med fel stege slösar du antingen disk och bandbredd på steg som ingen använder, eller lämnar tittare med långsam anslutning åt en snurrande laddningsikon.

Den här artikeln förklarar hur en stege fungerar och visar sedan den verkliga stege som UFOLOAD:s konverterare bygger, med bithastigheter hämtade direkt från konverteraren, och vad varje steg kostar i diskutrymme per timme video.

Hur spelaren väljer steg

Huvudspellistan i en HLS-ström listar varje steg med tre attribut som spelar roll: BANDWIDTH, RESOLUTION och CODECS. Spelaren mäter sin nedladdningshastighet under de senaste segmenten och väljer det högsta steget vars BANDWIDTH får plats med god marginal under den hastigheten. Två detaljer är värda att känna till.

För det första är BANDWIDTH ett toppvärde, inte ett medelvärde. Om en spellista anger för lågt värde väljer spelaren ett steg som anslutningen inte klarar av och uppspelningen stannar, och därför skriver vår konverterare toppvärdet och aldrig noll. För det andra sker byten vid segmentgränser. Våra segment är fyra sekunder långa och kodaren lägger en nyckelbildruta i början av varje segment, så att spelaren kan hoppa mellan versioner utan störningar. Kortare segment reagerar snabbare men ger fler förfrågningar; fyra sekunder är en vanlig kompromiss.

Om du vill lägga en sådan ström på din egen sida visar hur du bäddar in en HLS-video alternativen med iframe och hls.js.

UFOLOAD:s stege

Konverteraren har fyra steg: 2160p (4K), 1080p, 720p och 360p. Ett steg skapas bara om källan är minst så hög, eftersom uppskalning inte tillför några detaljer men mångdubblar filstorlek och kodningstid. En källa i 720p ger 720p och 360p; en källa som är mindre än 360p ger en enda version i sin egen storlek, så att varje fil har minst en spelbar version. Bredderna följer källans bildförhållande och avrundas till ett jämnt tal, eftersom H.264 med 4:2:0-krominans inte kan koda udda dimensioner. Bredderna nedan förutsätter 16:9.

Steg i UFOLOAD:s konverterare (H.264 High-profil, AAC stereo)
StegBildruta i 16:9VideotakKvalitetsmål (CRF)LjudToppstorlek per timme
2160p3840x216016 Mbit/s20192 kbit/s6,79 GiB
1080p1920x10805 Mbit/s22160 kbit/s2,16 GiB
720p1280x7202,8 Mbit/s23128 kbit/s1,23 GiB
360p640x3600,8 Mbit/s2664 kbit/s0,36 GiB

Standardförinställningen är medium, och stegens bithastigheter valdes för vanligt H.264-innehåll. Steget 1080p har ett tak på 5 Mbit/s: det räcker för en ren bild, och över det växer filen utan synlig vinst. 4K har fyra gånger så många pixlar som 1080p, så dess tak är 16 Mbit/s, mer än tre gånger högre, för att block inte ska synas i komplexa scener.

Konverteraren tar inte fram 480p eller 240p. Färre steg betyder mindre disk och kortare kodning, och mellan 360p och 720p har spelaren ändå ett rimligt steg för långsamma mobilanslutningar. Vilka steg du faktiskt får beror också på din plan: 360p och 720p är grunden och det översta steget begränsas av planens tak, som anges på prissidan. På Free-planen får en video en enda kvalitet.

CRF och bithastighetstak: varför filstorlekarna är övre gränser

Kodaren siktar inte på en fast bithastighet. Den siktar på konstant kvalitet, uttryckt som CRF (constant rate factor): ett lägre tal betyder bättre bild och större fil. Statisk video med en talande person behöver mycket lite data för att nå målet, en actionscen behöver mycket. För att ingen enskild scen ska dränka en långsam anslutning har varje steg också en maxrate som är lika med bithastigheten i tabellen och en buffert på det dubbla. Resultatet är en ström som oftast ligger under taket och aldrig över det någon längre stund.

Därför är storlekarna i den här artikeln toppstorlekar. En föreläsning eller en skärminspelning hamnar oftast långt under dem. Pratigt innehåll kan ligga på en bråkdel av taket, medan sport med mycket rörelse eller brusigt material kommer nära. När du dimensionerar ett bibliotek använder du toppvärdet för en säker budget och ditt eget uppmätta genomsnitt för en realistisk.

Kvalitetsprofilen i Kodningsstudion förskjuter den här balansen. Den snabba profilen använder en snabbare x264-förinställning och gör videon klar tidigare, med något större filer; kvalitetsprofilen använder en långsammare förinställning och lägre CRF för en renare bild och finns på betalplaner. Den balanserade standardprofilen ligger mittemellan.

Vad en stege kostar i diskutrymme

En timme video vid toppvärdet för varje steg väger 6,79 GiB i 2160p, 2,16 GiB i 1080p, 1,23 GiB i 720p och 0,36 GiB i 360p. En hel stege är summan av de steg som källan tillåter, och varje steg är en separat fil på disken:

Källans upplösningSteg som skapasToppstorlek per timme video
4K (2160p)2160p, 1080p, 720p, 360p10,54 GiB
Full HD (1080p)1080p, 720p, 360p3,75 GiB
HD (720p)720p, 360p1,59 GiB
Under 360pEn version i källans storlekBeror på källan

Ett konkret exempel: 100 timmar Full HD-material ger högst cirka 375 GiB versioner. Om du begränsar det översta steget till 720p behöver samma hundra timmar högst cirka 159 GiB, en minskning med mer än hälften. Det översta steget dominerar notan: att ta bort 4K från ett bibliotek med 4K-källor tar bort ungefär två tredjedelar av dess vikt. Om en värdtjänst räknar dessa versioner mot din lagringskvot är en separat fråga, som tas upp i vad videohosting kostar; på UFOLOAD räknas kvoten efter storleken på de filer du laddar upp.

Finjustera stegen i Kodningsstudion

Du behöver inte nöja dig med standardvärdena. Kodningsstudion i instrumentpanelen har tre inställningar som ändrar hur många steg du lagrar:

  • Högsta upplösning. Videor kodas aldrig över det här värdet. Upplösningar över planens tak är låsta.
  • Lägsta kvalitet. Välj 360p, 720p eller 1080p som nedersta steg. Om du höjer det försvinner de små stegen, vilket sparar disk och kodningstid, men tittare med svag anslutning förlorar sin reserv, så behåll 360p om din publik omfattar mobilanvändare.
  • Snabbförinställningar. Maximal kvalitet, balanserad, spara lagring (upp till 720p och bara de kvaliteter du behöver) och omedelbar publicering för konton som uppfyller kraven.

Ändringarna gäller nya uppladdningar. För att tillämpa dem på videor som redan finns i biblioteket använder du åtgärden för omkodning, som bearbetar de nyaste videorna i omgångar och har en vilotid mellan körningarna; videorna går att spela upp medan de kodas om.

Om du bygger din egen stege

  • Håll avståndet mellan intilliggande steg på ungefär 1,5 till 2 gånger i bithastighet. Mindre steg kostar lagring utan synlig nytta, större steg gör kvalitetshoppet tydligt.
  • Börja tillräckligt lågt för dina långsammaste realistiska tittare. Ett steg som ingen klarar av är bortkastat; ett saknat nedersta steg är en snurrande laddningsikon.
  • Synka nyckelbildrutor med segmentlängden och ange toppbithastigheten i spellistan.
  • Skala inte upp. Begränsa varje steg till källans höjd.
  • Mät efter en månad vilka steg dina tittare faktiskt använder och ta bort dem som aldrig spelas.

För hela kedjan, från uppladdningsformat till leverans, se funktionssidan; för planernas gränser och priser, se priser. Om du fortfarande jämför alternativ tar checklistan för videohosting upp de frågor om kodning och kvalitet som du bör ställa till varje leverantör.

Prova med ett gratiskonto

Ladda upp en video och få en HLS-spelare och en API-nyckel på några minuter. Planernas gränser finns på prissidan.