Стълбицата с адаптивен битрейт е наборът от версии на едно видео, между които стрийминг плейърът може да избира. Всяко ниво има резолюция и битрейт; плейърът започва от едно от тях, следи колко бързо се изтеглят сегментите и се качва или слиза, когато връзката се промени. Ако стълбицата е добре подбрана, и зрителят във влака, и зрителят пред 4K телевизор получават гладко възпроизвеждане от едно и също качване. Ако е сбъркана, или хабите диск и трафик за нива, които никой не използва, или оставяте зрителите с бавна връзка да гледат въртящо се колелце.
Тази статия обяснява как работи стълбицата, а после показва реалната стълбица, която изгражда конверторът на UFOLOAD, с битрейтове, взети директно от конвертора, и колко дисково място струва всяко ниво на час видео.
Как плейърът избира ниво
Главният плейлист на HLS поток изброява всяко ниво с три важни атрибута: BANDWIDTH, RESOLUTION и CODECS. Плейърът измерва скоростта на изтегляне за последните няколко сегмента и избира най-високото ниво, чийто BANDWIDTH се побира спокойно под тази скорост. Струва си да знаете два детайла.
Първо, BANDWIDTH е пикова стойност, а не средна. Ако плейлистът я подценява, плейърът избира ниво, което връзката не може да поддържа, и възпроизвеждането засича — затова нашият конвертор записва пика и никога нула. Второ, превключването става на границите между сегментите. Нашите сегменти са по четири секунди и енкодерът поставя ключов кадър в началото на всеки, така че плейърът може да преминава между версиите без засечки. По-краткият сегмент реагира по-бързо, но добавя заявки; четири секунди е често срещан компромис.
Ако искате да сложите такъв поток на своя страница, как да вградите HLS видео показва вариантите с iframe и hls.js.
Стълбицата на UFOLOAD
Конверторът има четири нива: 2160p (4K), 1080p, 720p и 360p. Ниво се създава само ако оригиналът е поне толкова висок, защото увеличаването на резолюцията не добавя детайли, а умножава размера и времето за кодиране. Оригинал в 720p дава 720p и 360p; оригинал под 360p дава една версия в собствения си размер, така че всеки файл има поне една версия за възпроизвеждане. Ширината следва съотношението на страните на оригинала и се закръглява до четно число, защото H.264 с цветова субдискретизация 4:2:0 не може да кодира нечетни размери. Ширините по-долу са за 16:9.
| Ниво | Кадър при 16:9 | Таван за видео | Целево качество (CRF) | Аудио | Пиков размер на час |
|---|---|---|---|---|---|
| 2160p | 3840x2160 | 16 Mbit/s | 20 | 192 kbit/s | 6.79 GiB |
| 1080p | 1920x1080 | 5 Mbit/s | 22 | 160 kbit/s | 2.16 GiB |
| 720p | 1280x720 | 2.8 Mbit/s | 23 | 128 kbit/s | 1.23 GiB |
| 360p | 640x360 | 0.8 Mbit/s | 26 | 64 kbit/s | 0.36 GiB |
Настройката по подразбиране е medium, а битрейтовете на нивата са подбрани за обикновено H.264 съдържание. Нивото 1080p е ограничено до 5 Mbit/s: това стига за чиста картина, а над него файлът расте без видима полза. 4K има четири пъти повече пиксели от 1080p, затова таванът му е 16 Mbit/s — над три пъти по-висок, за да не се появяват блокове в сложни сцени.
Конверторът не прави 480p и 240p. По-малко нива означават по-малко диск и по-кратко кодиране, а между 360p и 720p плейърът пак има разумна стъпка за бавни мобилни връзки. Кои нива реално получавате зависи и от плана ви: 360p и 720p са базата, а горното ниво се ограничава от тавана на плана, посочен на страницата с цените. В плана Free видеото получава едно качество.
CRF и таван на битрейта: защо размерите са горна граница
Енкодерът не се стреми към фиксиран битрейт. Той се стреми към постоянно качество, изразено чрез CRF (constant rate factor): по-ниското число означава по-добра картина и по-голям файл. Статично видео с говорещ човек изисква много малко данни, за да постигне целта, а екшън сцена — много. За да не може отделна сцена да задръсти бавна връзка, всяко ниво има и maxrate, равен на битрейта от таблицата, и буфер, двойно по-голям от него. Резултатът е поток, който обикновено е под тавана и никога не го надвишава задълго.
Затова размерите в тази статия са пикови. Лекция или запис на екран обикновено остава доста под тях. Съдържание с много говор може да е малка част от тавана, а динамичен спорт или шумен материал се доближава до него. Когато оразмерявате библиотека, използвайте пика за безопасен бюджет и собствената си измерена средна стойност за реалистичен.
Профилът на качеството в студиото за кодиране измества този баланс. Бързият профил използва по-бърза настройка на x264 и подготвя видеото по-рано при малко по-големи файлове; профилът за качество използва по-бавна настройка и по-нисък CRF за по-чиста картина и е достъпен в платените планове. Балансираният профил по подразбиране е между двата.
Колко дисково място струва една стълбица
Един час видео при пика на всяко ниво тежи 6.79 GiB в 2160p, 2.16 GiB в 1080p, 1.23 GiB в 720p и 0.36 GiB в 360p. Пълната стълбица е сумата от нивата, които оригиналът позволява, като всяко ниво е отделен файл на диска:
| Резолюция на оригинала | Създадени нива | Пиков размер на час видео |
|---|---|---|
| 4K (2160p) | 2160p, 1080p, 720p, 360p | 10.54 GiB |
| Full HD (1080p) | 1080p, 720p, 360p | 3.75 GiB |
| HD (720p) | 720p, 360p | 1.59 GiB |
| Под 360p | Една версия в размера на оригинала | Зависи от оригинала |
Конкретен пример: 100 часа Full HD материал дават най-много около 375 GiB версии. Ако ограничите горното ниво до 720p, същите сто часа заемат най-много около 159 GiB — над два пъти по-малко. Горното ниво определя сметката: премахването на 4K от библиотека с 4K оригинали маха приблизително две трети от обема ѝ. Дали един хостинг отчита тези версии в квотата ви за съхранение е отделен въпрос, разгледан в колко струва видеохостингът; в UFOLOAD квотата се изчислява по размера на файловете, които качвате.
Настройка на стълбицата в студиото за кодиране
Не е задължително да приемате настройките по подразбиране. Студиото за кодиране в таблото има три настройки, които променят колко нива съхранявате:
- Максимална резолюция. Видеата никога не се кодират над тази стойност. Резолюциите над тавана на плана ви са заключени.
- Най-ниско качество. Изберете 360p, 720p или 1080p за най-долно ниво. Повишаването му маха малките нива, което спестява диск и време за кодиране, но зрителите със слаба връзка губят резервния си вариант — затова запазете 360p, ако аудиторията ви включва мобилни потребители.
- Бързи пресети. Максимално качество, балансиран, пестене на място (до 720p и само нужните качества) и незабавно публикуване за акаунтите, които имат право на него.
Промените важат за новите качвания. За да ги приложите към видеа, които вече са в библиотеката ви, използвайте действието за повторно кодиране — то обработва най-новите видеа на партиди и има пауза между стартиранията; видеата остават достъпни за гледане, докато се прекодират.
Ако изграждате своя стълбица
- Поддържайте разлика между съседните нива от около 1,5 до 2 пъти в битрейта. По-малките стъпки добавят място без видима полза, а по-големите правят скока в качеството очевиден.
- Започнете достатъчно ниско за най-бавните си реалистични зрители. Ниво, което никой не може да поддържа, е изхабено; липсващото най-долно ниво означава въртящо се колелце.
- Подравнете ключовите кадри с дължината на сегмента и посочвайте пиковия битрейт в плейлиста.
- Не увеличавайте резолюцията. Ограничете всяко ниво до височината на оригинала.
- След месец измерете кои нива реално използват зрителите ви и махнете тези, които никога не се възпроизвеждат.
За целия процес — от форматите за качване до доставката — вижте страницата с възможностите; за лимитите и цените на плановете вижте цените. Ако още сравнявате варианти, чеклистът за избор на видеохостинг съдържа въпросите за кодиране и качество, които да зададете на всеки доставчик.
Качете видео и получете HLS плейър и API ключ за минути. Лимитите на плановете са на страницата с цените.