Драбина адаптивного бітрейту — це набір версій відео, з яких може вибирати стримінговий плеєр. Кожен щабель має свою роздільність і бітрейт: плеєр стартує з одного з них, стежить, як швидко завантажуються сегменти, і переходить вище або нижче, коли змінюється з'єднання. Якщо драбину побудовано правильно, і глядач у поїзді, і глядач перед 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 Мбіт/с | 20 | 192 кбіт/с | 6.79 GiB |
| 1080p | 1920x1080 | 5 Мбіт/с | 22 | 160 кбіт/с | 2.16 GiB |
| 720p | 1280x720 | 2.8 Мбіт/с | 23 | 128 кбіт/с | 1.23 GiB |
| 360p | 640x360 | 0.8 Мбіт/с | 26 | 64 кбіт/с | 0.36 GiB |
Пресет за замовчуванням — medium, а бітрейти щаблів підібрано для звичайного контенту в H.264. Щабель 1080p обмежено 5 Мбіт/с: цього достатньо для чистої картинки, а вище файл росте без помітного виграшу. 4K має вчетверо більше пікселів, ніж 1080p, тож його ліміт — 16 Мбіт/с, більш ніж утричі вищий, щоб у складних сценах не з'являлися блоки.
Конвертер не створює 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-ключ за кілька хвилин. Ліміти тарифів наведено на сторінці «Тарифи».