Що таке стрімінг: як улюблений контент потрапляє до вас. Частина 1


Павло Калмиков, Архітектор продукту на Pluto TV

7 Вересня, 2022

Привіт, я Павло Калмиков, архітектор продукту у Brightgrove та на Pluto TV. Це безкоштовна стрімінгова платформа, яка щомісяця збирає більше 50 мільйонів активних користувачів. Я працюю із відеострімінгом вже 4 роки.

 

Онлайн стрімінг складає 80% поточного інтернет трафіку, роблячи його дуже прибутковою площиною для розробки. Як архітектор продукту на Pluto TV, я хочу поділитися з вами власними ключовими знаннями щодо стрімінгу.

 

Сьогодні я розгляну стрімінг у різних контекстах та опишу його сучасні механізми. Цей матеріал буде корисним як для людей, які тільки знайомляться зі стрімінгом, так і для тих, хто хоче більше дізнатися про його особливості.

 

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

Історія стрімінгу

Перш за все подивимося на визначення стрімінгу у цифровій площині. Це технологія передачі даних, які можна отримувати та обробляти в постійному потоці.

 

Першим прикладом стрімінгу можна вважати димові сигнали, за допомогою яких люди передавали повідомлення на відстані. Будь-яка особа, що бачила ці сигнали, автоматично ставала одержувачем повідомлення, а якщо вона розуміла їхнє значення—ще й інтерпретатором. Як ви бачите, стрімінг існував ще до цифрових технологій. Тепер ви можете зв’язатися зі своїм тім лідом навіть якщо він у відпустці на безлюдному острові, якщо тільки він може виправити якийсь баг 🙂

 

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

 

Телеграф винайшли у 18 столітті, і він був першим прототипом мультимедійного стрімінгу. Однак перша фактична передача звукового сигналу з подальшим прийомом і відтворенням відбулася в 1900 році. Це сталося завдяки Реджинальду А. Фессендену, який здійснив першу двосторонню трансатлантичну радіопередачу.

 

Давайте перейдемо до процесу, найближчого до відомого нам мультимедійного стрімінгу—до телебачення. Телевізійне мовлення почалося в 1920 році. Аудіо- та відеосигнали в аналоговому форматі передавалися за допомогою радіохвиль. Кожна радіостанція займала певну частоту для передачі цих сигналів. Нам ці частоти відомі як телеканали.

 

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

 

Ось чому наприкінці 90-х з’явилося цифрове телебачення. Головною відмінністю аналогового телебачення від цифрового є формат передачі даних. Цифрове телебачення передає сигнал у формі стислих даних у пакетах.

 

Контент цифрового телебачення не втрачає якість, і користувачі можуть насолоджуватися найкращим зображенням. Цифрова передача також ефективніша за аналогову, її смуга пропуску сигналу відрізняється приблизно на чверть порівняно з аналоговою.

 

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

 

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

 

Давайте нарешті перейдемо до стрімінгу в контексті Інтернету. Ми детально розглянемо типи потокової передачі та технологію, що стоїть за нею.

Стрімінг за протоколом RTMP (real-time messaging protocol)

У 2002 компанія Adobe розробила протокол RTMP як метод стрімінгу відео та аудіо в інтернеті. До початку 2010-х RTMP та Adobe Flash Player були провідними інструментами стрімінгу наживо. Вони підтримують миттєву передачу відео з приблизно п’ятисекундною затримкою при спільному використанні.

 

RTMP використовує безперервне TCP-з’єднання для передачі фрагментів аудіо та відео із джерела до пункту призначення. Існує два основних випадки використання цього протоколу. Перший—це передача відео між джерелом кодування і сервером, відома як доставка першої милі або відеоконтрибуція. Другий—це передача відео між сервером і пристроєм глядача за допомогою Flash Player, відома як доставка останньої милі. Цей метод найкраще підходить для трансляції для невеликої аудиторії зі спеціального медіа-сервера.

  

First-mile vs. last-mile RTMP use

 

Однак прийом і відтворення відео за допомогою RTMP більше не підтримується багатьма одержувачами, наприклад пристроями iOS. Крім того, скоро його підтримку зупинять, тому що Adobe оголосила про припинення використання Flash Player.

 

Бродкастери все ще використовують RTMP для прямої трансляції на свої сервери, а потім перекодують вміст для доставки кінцевому користувачеві. Іншими словами, RTMP стрімінг досі використовується для надання контенту, але не доставки останньої милі. HTML5 стрімінг, відкриті стандарти та адаптивний бітрейт зрештою замінили RTMP у доставці останньої милі.

Поступове завантаження або HTTP псевдострімінг

Поступове завантаження—це фактично завантаження відеофайлу із сервера за допомогою добре відомого протоколу HTTP. Цей метод схожий на HTTP Live Streaming, адаптивний протокол потокової передачі даних, розроблений компанією Apple.

 

Відтворення відбувається в результаті переміщення метаданих відео з кінця на початок файлу. Ця дія надає медіаплеєру всю необхідну інформацію для відтворення, поки файл ще завантажується.

 

HTTP Pseudo Streaming overview

 

Основними недоліками HTTP псевдострімінгу є знижений рівень безпеки та довший час завантаження великих файлів.

Адаптивний стрімінг

Стрімінг з адаптивним бітрейтом—це техніка потокового передавання мультимедіа через комп’ютерні мережі. Цей механізм, заснований на традиційному HTTP, підтримує потокове передавання зі змінною якістю на основі можливостей пристрою-приймача.

 

У минулому більшість технологій потокової передачі відео або аудіо використовували RTMP або RTP із протоколами потокового передавання RTSP. Адаптивний стрімінг здебільшого базується на HTTP і найкраще працює у великих розподілених мережах, таких як Інтернет. Цей тип потокової передачі регулює якість медіа-потоку в режимі реального часу на основі пропускної здатності користувача та потужності ЦП.

 

За допомогою адаптивної потокової передачі відео перекодовується у налаштований розмір, розбивається на фрагменти та завантажується на сервер. Далі відео стає доступним для завантаження, часто через мережу отримання кешованого контенту (CDN). Сервер лише передає файли-маніфести з описом потоку до відеоплеєра користувача. У цьому випадку ми все ще маємо контроль над кожним потоком, не обробляючи розповсюдження медіафайлів сервером.

 

Adaptive streaming overview

 

Існує багато протоколів адаптивного стрімінгу, до головних відносяться:

  • MPEG-DASH
  • Apple HTTP Live Streaming (HLS)
  • Adobe HTTP Dynamic Streaming
  • Microsoft Smooth Streaming
  • QuavStreams Adaptive Streaming over HTTP

 

MPEG-DASH нарощує свій ринок завдяки більшій ефективності, але більшість  дистриб’юторів все ще використовують HLS.

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

Дивіться також

Дізнайтеся більше про наш досвід, перемоги, виклики та секрети роботи