Article Main Image
Author avatar

by Volodymyr Davydenko

Software Engineering Expert

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

Що таке протокол стрімінгу?

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

Які найпоширеніші протоколи стрімінгу?

Розгляньмо найпопулярніші відеопротоколи для стрімінгу, які можуть бути використані у 2023 році.

Протокол обміну повідомленнями в реальному часі (RTMP)

RTMP — це широко вживаний протокол стрімінгу з низькою затримкою (3-30 секунд), створений компанією Adobe для передачі аудіо та відео. Він існує вже багато років і став важливим інструментом для телебачення, мережевих операторів та багатьох інших галузей. Цей потоковий протокол базується на технології Transmission Control Protocol (TCP) і є комунікаційним мостом між прикладним і мережевим рівнями.

Попри його надійність і безпеку, з часом він був витіснений деякими відкритими стандартами й потоковою передачею з адаптивним бітрейтом — ось чому вибір між RTMP та RTSP/RTP і HLS й RTMPS (RTMPS — це варіація RTMP, що використовує додаткове шифрування для запобігання перехопленню потоку), є настільки актуальними сьогодні.

З іншого боку, навіть попри те, що Flash-плеєр (для якого був створений цей протокол) більше не підтримується, використання RTMP все ще широко розповсюджене. Зокрема, понад 75% дистриб'юторів контенту використовували його ще у 2021 році. Окрім застарілих версій Flash Player та Adobe AIR, RTMP-сумісні плеєри також підтримують цей протокол.

  • Підтримувані відеокодеки: H.264
  • Підтримувані аудіокодеки: AAC

Протокол обміну повідомленнями в реальному часі (RTSP)

Протокол RTSP для передачі відеотрафіку з низькою затримкою до 2 секунд потребує оновлення. Він описує стару технологію обміну медіатрафіком на рівні презентації. Зверніть увагу, що цей протокол не підтримується мобільними платформами (крім 3Gpp-сумісних), що обмежує його використання. Водночас він часто зустрічається в рішеннях для відеоспостереження і замкнутого телебачення (CCTV), бувши частиною прошивки сучасних IP-камер.

  • Відеокодеки, що підтримують цей протокол: H.265 (попередній перегляд), H.264, VP9, VP8
  • Аудіокодеки, які підтримують цей протокол: AAC, AAC-LC, HE-AAC+ v1 і v2, MP3, Speex, Opus, Vorbis

HTTP Live Streaming (HLS)

HLS, або Apple HLS, є власною розробкою Apple і підтримує стрімінг з адаптивним бітрейтом і затримкою від 6 до 30 секунд. Зараз попри
початкову орієнтацію тільки на iOS, цей протокол також сумісний з більшістю користувацьких пристроїв і браузерів (Google Chrome, Android, Linux і пристрої Microsoft).

  • Підтримувані відеокодеки: H.265, H.264
  • Підтримувані аудіокодеки: AAC-LC, HE-AAC+ v1 та v2, xHE-AAC, Apple Lossless, FLAC

MPEG-DASH

MPEG-DASH — аналог HLS, який, на відміну від нього, не залежить від кодеків і платформи (сумісність забезпечується з браузерами Chrome, Safari і Firefox, а також з усіма пристроями на базі Android і телевізорами Samsung, Philips, Panasonic і Sony, виробленими у 2012 році і пізніше). Всі інші характеристики, характерні для HLS, залишаються незмінними — протокол забезпечує затримку від 6 до 30 секунд.

Transmission Control Protocol (TCP)

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

Secure Reliable Transport (SRT)

SRT — це відносно новий потоковий протокол з відкритим вихідним кодом, розроблений постачальниками потокових рішень Haivision і Wowza. Його основними особливостями є підвищена надійність, конфіденційність і мінімальна затримка. Водночас до 2023 року все ще існують певні проблеми, пов'язані з обмеженою сумісністю SRT. У зв'язку з цим, якщо ви зупините свій вибір на цьому протоколі для потокового відео, має сенс використовувати рішення від SRT Alliance, партнерської організації згаданих вище постачальників.

WebRTC

Припустимо, ви шукаєте протокол з мінімальною затримкою (менш як 50 мс). Тоді вам варто звернути увагу на WebRTC — протокол, створений спеціально для рішень для відеоконференцій і підтримуваний браузерами Chrome, Firefox і Safari без додаткових плагінів. Водночас цей протокол потокового відео має низьку масштабованість — саме тому з пари SRT vs WebRTC має сенс вибрати перший. Крім того, ви можете використовувати додаткові продукти, такі як Wowza, для реалізації масштабованого потокового відео в реальному часі (до мільйона глядачів одночасно).

  • Підтримувані відеокодеки: H.264, VP8, VP9
  • Підтримувані аудіокодеки: Opus, iSAC, iLBC

User Datagram Protocol (UDP)

UDP — це протокол передачі даних без перевірки та виправлення помилок, який одночасно забезпечує швидку обробку запитів. Це найпростіший протокол зв'язку транспортного рівня з набору протоколів TCP/IP, який часто вважається недостатньо надійним транспортним протоколом. UDP зазвичай використовується, коли підтвердження даних не викликає занепокоєння, і підходить для програм потокового передавання мультимедіа.

Session Initiation Protocol (SIP)

SIP — це масштабований протокол потокового передавання даних у реальному часі, спочатку розроблений лише для сеансових (встановлення/завершення/зміна) додатків. Однак зараз він також підтримується для відеоконтенту в реальному часі. Зауважте, що SIP є протоколом прикладного рівня і може використовувати вищеописані протоколи UDP, RTP і TCP як транспорт. Протокол SIP базується на 100% сумісності з будь-якими іншими SIP-пристроями та сервісами, оскільки на сьогодні він є світовим стандартом.

Як вибрати правильний протокол для вашого стріму?

Тепер визначмо, на що потрібно звернути увагу при виборі того чи іншого протоколу.

  • Сумісність. Одним з основних факторів, що впливають на вибір того чи іншого протоколу, є його сумісність з пристроями ваших глядачів — чим різноманітніша ваша аудиторія, тим більш сумісним повинен бути протокол (зокрема, таким є HLS).
  • Затримка. Якщо для вас пріоритетом є низька затримка при трансляції медіа, розгляньте RTMP (зверніть увагу, що цей протокол несумісний з відеоплеєрами HTML5), SRT і WebRTC.
  • Конфіденційність і безпека. Припустимо, вас турбує безпека вашої інтелектуальної власності під час онлайн-трансляцій. У такому випадку вам варто звернути увагу на протокол SRT, який має найкращі механізми захисту мультимедійного трафіку.
  • Адаптивний бітрейт. Якщо вам потрібно забезпечити цілісність відеопотоку (це може бути актуально, якщо більшість ваших глядачів — мобільні користувачі), вам краще вибрати між протоколами HLS і MPEG-DASH.

Що стосується протоколів потокового мовлення YouTube, то ця платформа підтримує MPEG-DASH на основі протоколу HLS. На транспортному рівні платформа використовує TCP.

Висновки

Сподіваємося, ви розібралися в особливостях відомих (і не дуже) протоколів для передачі відео в Інтернеті. Тепер ви можете вибрати найбільш слушний для якісного стрімінгу вашого контенту.