HLSEncodingStorage

Drabinki adaptacyjnego bitrate’u: od 360p do 4K i koszt dysku

Jak streaming adaptacyjny wybiera jakość, jakie stopnie i bitrate’y tworzy konwerter UFOLOAD i ile miejsca na dysku zajmuje każdy z nich na godzinę.

Drabinka adaptacyjnego bitrate’u to zestaw wersji jednego wideo, spośród których odtwarzacz strumieniowy może wybierać. Każdy stopień ma swoją rozdzielczość i bitrate; odtwarzacz zaczyna od jednego z nich, obserwuje, jak szybko pobierają się segmenty, i przechodzi wyżej lub niżej, gdy zmienia się połączenie. Dobrze ułożona drabinka sprawia, że widz w pociągu i widz przed telewizorem 4K oglądają płynnie ten sam przesłany plik. Źle ułożona marnuje dysk i transfer na stopnie, z których nikt nie korzysta, albo zostawia widzów z wolnym łączem z kręcącym się kółkiem.

Ten artykuł wyjaśnia, jak działa drabinka, a następnie pokazuje tę prawdziwą, którą buduje konwerter UFOLOAD — z bitrate’ami wziętymi wprost z konwertera — oraz ile miejsca na dysku zajmuje każdy stopień na godzinę wideo.

Jak odtwarzacz wybiera stopień

Główna playlista strumienia HLS wymienia wszystkie stopnie z trzema istotnymi atrybutami: BANDWIDTH, RESOLUTION i CODECS. Odtwarzacz mierzy prędkość pobierania ostatnich kilku segmentów i wybiera najwyższy stopień, którego BANDWIDTH mieści się z zapasem poniżej tej prędkości. Warto znać dwa szczegóły.

Po pierwsze, BANDWIDTH to wartość szczytowa, a nie średnia. Jeśli playlista ją zaniża, odtwarzacz wybiera stopień, którego połączenie nie utrzyma, i odtwarzanie się zacina — dlatego nasz konwerter zapisuje wartość szczytową i nigdy zero. Po drugie, przełączanie następuje na granicach segmentów. Nasze segmenty trwają cztery sekundy, a enkoder umieszcza klatkę kluczową na początku każdego z nich, więc odtwarzacz może przeskakiwać między wersjami bez zakłóceń. Krótszy segment reaguje szybciej, ale zwiększa liczbę żądań; cztery sekundy to popularny kompromis.

Jeśli chcesz umieścić taki strumień na własnej stronie, poradnik jak osadzić wideo HLS pokazuje warianty z iframe i hls.js.

Drabinka UFOLOAD

Konwerter ma cztery stopnie: 2160p (4K), 1080p, 720p i 360p. Stopień powstaje tylko wtedy, gdy źródło ma co najmniej taką wysokość, bo skalowanie w górę nie dodaje szczegółów, a mnoży rozmiar i czas kodowania. Ze źródła 720p powstają 720p i 360p; źródło mniejsze niż 360p daje jedną wersję w swoim rozmiarze, dzięki czemu każdy plik ma co najmniej jedną odtwarzalną wersję. Szerokość wynika z proporcji źródła i jest zaokrąglana do liczby parzystej, ponieważ H.264 z próbkowaniem chrominancji 4:2:0 nie koduje nieparzystych wymiarów. Szerokości poniżej zakładają format 16:9.

Stopnie konwertera UFOLOAD (H.264 profil High, AAC stereo)
StopieńKlatka przy 16:9Limit wideoDocelowa jakość (CRF)AudioSzczytowy rozmiar na godzinę
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

Domyślny preset to medium, a bitrate’y stopni dobrano pod zwykłe treści H.264. Stopień 1080p jest ograniczony do 5 Mbit/s: to wystarcza na czysty obraz, a powyżej plik rośnie bez widocznej poprawy. 4K ma cztery razy więcej pikseli niż 1080p, więc jego limit to 16 Mbit/s, ponad trzy razy więcej, żeby w złożonych scenach nie pojawiały się bloki.

Konwerter nie tworzy 480p ani 240p. Mniej stopni to mniej miejsca na dysku i krótsze kodowanie, a między 360p a 720p odtwarzacz wciąż ma rozsądny krok dla wolnych połączeń mobilnych. To, które stopnie faktycznie dostaniesz, zależy też od planu: 360p i 720p to podstawa, a najwyższy stopień ogranicza pułap planu podany w cenniku. W planie Free wideo ma jedną jakość.

CRF i limit bitrate’u: dlaczego rozmiary plików to górne granice

Enkoder nie celuje w stały bitrate. Celuje w stałą jakość, wyrażoną jako CRF (constant rate factor): niższa liczba oznacza lepszy obraz i większy plik. Statyczne ujęcie mówiącej osoby potrzebuje bardzo mało danych, by osiągnąć cel, scena akcji — bardzo dużo. Aby żadna pojedyncza scena nie zalała wolnego połączenia, każdy stopień ma też maxrate równy bitrate’owi z tabeli i bufor dwa razy większy. W efekcie strumień zwykle pozostaje poniżej limitu i nigdy nie przekracza go na dłużej.

Dlatego rozmiary w tym artykule to rozmiary szczytowe. Wykład czy nagranie ekranu zwykle mieszczą się wyraźnie poniżej nich. Materiały, w których głównie się mówi, mogą zajmować ułamek limitu, a dynamiczny sport czy zaszumione nagrania zbliżają się do niego. Planując bibliotekę, przyjmij wartość szczytową dla bezpiecznego budżetu, a własną zmierzoną średnią dla realistycznego.

Profil jakości w studiu kodowania przesuwa tę równowagę. Profil szybki używa szybszego presetu x264 i przygotowuje wideo wcześniej kosztem nieco większych plików; profil jakości używa wolniejszego presetu i niższego CRF dla czystszego obrazu i jest dostępny w planach płatnych. Domyślny profil zrównoważony leży pomiędzy nimi.

Ile miejsca na dysku kosztuje drabinka

Godzina wideo przy szczytowym bitrate każdego stopnia waży 6,79 GiB w 2160p, 2,16 GiB w 1080p, 1,23 GiB w 720p i 0,36 GiB w 360p. Pełna drabinka to suma stopni, na które pozwala źródło, a każdy stopień jest osobnym plikiem na dysku:

Rozdzielczość źródłaTworzone stopnieSzczytowy rozmiar na godzinę wideo
4K (2160p)2160p, 1080p, 720p, 360p10,54 GiB
Full HD (1080p)1080p, 720p, 360p3,75 GiB
HD (720p)720p, 360p1,59 GiB
Poniżej 360pJedna wersja w rozmiarze źródłaZależy od źródła

Konkretny przykład: 100 godzin materiału Full HD daje co najwyżej około 375 GiB wersji. Jeśli ograniczysz najwyższy stopień do 720p, te same sto godzin zajmie co najwyżej około 159 GiB, czyli o ponad połowę mniej. Rachunek zdominowany jest przez najwyższy stopień: rezygnacja z 4K w bibliotece źródeł 4K usuwa mniej więcej dwie trzecie jej wagi. To, czy hosting wlicza te wersje do limitu przestrzeni, to osobna kwestia, omówiona w artykule ile kosztuje hosting wideo; w UFOLOAD limit liczony jest według rozmiaru przesłanych plików.

Dostrajanie drabinki w studiu kodowania

Nie musisz akceptować ustawień domyślnych. Studio kodowania w panelu ma trzy ustawienia, które zmieniają liczbę przechowywanych stopni:

  • Maksymalna rozdzielczość. Wideo nigdy nie jest kodowane powyżej tej wartości. Rozdzielczości powyżej pułapu planu są zablokowane.
  • Najniższa jakość. Wybierz 360p, 720p lub 1080p jako najniższy stopień. Podniesienie go usuwa małe stopnie, co oszczędza dysk i czas kodowania, ale widzowie ze słabym łączem tracą wersję zapasową, więc zostaw 360p, jeśli wśród odbiorców są użytkownicy mobilni.
  • Szybkie presety. Maksymalna jakość, zrównoważony, oszczędzanie miejsca (do 720p i tylko potrzebne jakości) oraz natychmiastowa publikacja dla uprawnionych kont.

Zmiany dotyczą nowych plików. Aby zastosować je do filmów, które już są w bibliotece, użyj akcji ponownego kodowania: przetwarza ona najnowsze filmy partiami i ma przerwę między uruchomieniami; podczas ponownego kodowania filmy pozostają dostępne do odtwarzania.

Jeśli budujesz własną drabinkę

  • Utrzymuj odstępy między sąsiednimi stopniami na poziomie mniej więcej 1,5–2 razy w bitrate. Mniejsze kroki zwiększają zajętość dysku bez widocznej korzyści, większe sprawiają, że skok jakości jest wyraźnie widoczny.
  • Zacznij na tyle nisko, by obsłużyć najwolniejszych realnych widzów. Stopień, którego nikt nie jest w stanie utrzymać, to strata; brak dolnego stopnia to kręcące się kółko.
  • Wyrównaj klatki kluczowe z długością segmentu i podawaj w playliście szczytowy bitrate.
  • Nie skaluj w górę. Ogranicz każdy stopień do wysokości źródła.
  • Po miesiącu sprawdź, z których stopni widzowie faktycznie korzystają, i usuń te, które nigdy nie są odtwarzane.

Cały proces, od formatów przesyłania po dostarczanie, opisuje strona funkcji; limity i ceny planów znajdziesz w cenniku. Jeśli wciąż porównujesz opcje, lista kontrolna wyboru hostingu wideo zawiera pytania o kodowanie i jakość, które warto zadać każdemu dostawcy.

Wypróbuj z darmowym kontem

Prześlij wideo, a w kilka minut dostaniesz odtwarzacz HLS i klucz API. Limity planów znajdziesz w cenniku.