HLSEncodingStorage

Адаптивні драбини бітрейту: від 360p до 4K і ціна в дисковому просторі

Як адаптивний стримінг обирає якість, які реальні щаблі та бітрейти дає конвертер UFOLOAD і скільки місця на диску займає кожен щабель за годину відео.

Драбина адаптивного бітрейту — це набір версій відео, з яких може вибирати стримінговий плеєр. Кожен щабель має свою роздільність і бітрейт: плеєр стартує з одного з них, стежить, як швидко завантажуються сегменти, і переходить вище або нижче, коли змінюється з'єднання. Якщо драбину побудовано правильно, і глядач у поїзді, і глядач перед 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.

Щаблі конвертера UFOLOAD (H.264 High profile, AAC стерео)
ЩабельКадр при 16:9Ліміт відеоЦільова якість (CRF)АудіоПіковий розмір за годину
2160p3840x216016 Мбіт/с20192 кбіт/с6.79 GiB
1080p1920x10805 Мбіт/с22160 кбіт/с2.16 GiB
720p1280x7202.8 Мбіт/с23128 кбіт/с1.23 GiB
360p640x3600.8 Мбіт/с2664 кбіт/с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, 360p10.54 GiB
Full HD (1080p)1080p, 720p, 360p3.75 GiB
HD (720p)720p, 360p1.59 GiB
Нижче 360pОдна версія в розмірі джерелаЗалежить від джерела

Конкретний приклад: 100 годин відео у Full HD дають щонайбільше близько 375 GiB версій. Якщо обмежити верхній щабель 720p, ті самі сто годин потребуватимуть щонайбільше близько 159 GiB — більш ніж удвічі менше. Верхній щабель домінує в рахунку: якщо прибрати 4K з бібліотеки 4K-джерел, її вага зменшиться приблизно на дві третини. Чи враховує хостинг ці версії у вашій квоті сховища — окреме питання, яке розглянуто в статті скільки коштує відеохостинг; в UFOLOAD квота рахується за розміром файлів, які ви завантажуєте.

Налаштування драбини в студії кодування

Ви не зобов'язані погоджуватися зі значеннями за замовчуванням. Студія кодування в кабінеті має три налаштування, які змінюють кількість щаблів, що зберігаються:

  • Максимальна роздільність. Відео ніколи не кодуються вище за це значення. Роздільності вище за стелю вашого тарифу заблоковано.
  • Найнижча якість. Виберіть 360p, 720p або 1080p як нижній щабель. Підвищення прибирає малі щаблі, що заощаджує диск і час кодування, але глядачі зі слабким з'єднанням втрачають запасний варіант, тож залиште 360p, якщо серед вашої аудиторії є мобільні користувачі.
  • Швидкі пресети. Максимальна якість, збалансований, економія сховища (до 720p і лише потрібні якості) та миттєва публікація для акаунтів, яким вона доступна.

Зміни застосовуються до нових завантажень. Щоб застосувати їх до відео, які вже є у вашій бібліотеці, скористайтеся дією перекодування: вона обробляє найновіші відео партіями з паузою між запусками, а відео залишаються доступними для перегляду під час перекодування.

Якщо ви будуєте власну драбину

  • Тримайте крок між сусідніми щаблями приблизно в 1,5–2 рази за бітрейтом. Менші кроки додають обсягу сховища без видимої користі, більші роблять стрибок якості помітним.
  • Починайте досить низько для найповільніших реальних глядачів. Щабель, який ніхто не може витягнути, — марний; відсутній нижній щабель — це індикатор завантаження.
  • Узгоджуйте ключові кадри з довжиною сегмента й вказуйте в плейлисті піковий бітрейт.
  • Не масштабуйте вгору. Обмежуйте кожен щабель висотою джерела.
  • Через місяць перевірте, якими щаблями глядачі користуються насправді, і приберіть ті, що ніколи не відтворюються.

Увесь конвеєр — від форматів завантаження до доставки — описано на сторінці можливостей; ліміти й ціни тарифів — на сторінці тарифів. Якщо ви ще порівнюєте варіанти, чек-лист вибору відеохостингу містить запитання про кодування та якість, які варто поставити будь-якому провайдеру.

Спробуйте з безкоштовним акаунтом

Завантажте відео й отримайте HLS-плеєр і API-ключ за кілька хвилин. Ліміти тарифів наведено на сторінці «Тарифи».