Який Потоковий Протокол Краще для Вас: RTMP vs RTSP?

Оновлено 31.07.2023

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

Що таке протокол зв'язку?

Which Streaming Protocol is Better for You: RTMP vs. RTSP

Затримка під час потокового передавання даних за допомогою популярних протоколів зв'язку. Джерело.

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

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

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

Різні протоколи потокової передачі даних орієнтовані на різні аспекти потоку (завдання). Зазвичай їх ділять на протоколи з адаптивним бітрейтом, які націлені на зменшення затримок і буферів для відеопотоку, і ті, що спрямовані на максимальне скорочення затримки, що дає змогу передавати відеосигнал глядачам практично в реальному часі - live streaming.

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

Що таке RTMP і як він працює?

Протокол обміну повідомленнями в реальному часі, або RTMP - це стандартизований протокол для передачі мультимедійних даних через інтернет. Цю технологію розробила Macromedia (нині належить Adobe), і спочатку її використовували для передавання даних між RTMP-сервером і Flash-плеєром на пристрої користувача. Зараз Flash більше не використовується через проблеми з безпекою, але RTMP все ще популярний.

Як протокол зв'язку технологія RTMP націлена на забезпечення стабільного і плавного передавання зростаючих обсягів даних, необхідних для передавання і приймання відео в реальному часі. Що досягається за допомогою фрагментування потоку даних на невеликі однакові частини (за замовчуванням становлять 64 байти для аудіоданих і 128 байт для відеоданих) та їхнє послідовне передання на приймаючий пристрій, який потім знову збирає їх у відеопотік.

Після того як Flash застарів 2020 року (Google та інші великі гравці повністю припинили підтримку Adobe Flash Player), RTMP почали використовувати як протокол із відкритим вихідним кодом для внеску першої милі (передавання від кодувальника до мережевого відеохосту). Саме таким чином RTMP зараз використовує Facebook, YouTube, Periscope і більшість інших платформ.

Наразі RTMP існує у 5 варіантах:


Як працює потокова передача RTMP?

Як правило, пряма відеотрансляція працює так: камера знімає відео (або відеокарта захоплює екран) та надсилає його на хост або сервер відеоплатформи через кодувальник (цей етап зазвичай називають "першою милею"). Потім сервер або відеоплатформа обробляє цей потік і передає його далі через мережу доставки контенту (CDN) для поширення відеопотоку на пристрої користувачів (це "остання миля"). Коли ще працював Flash, обидва ці етапи проходили за допомогою RTMP, але відтоді, як Flash застарів, RTMP більше не працює на "останній милі". З цього моменту потік повинен перехопити інший протокол зв'язку (HLS, MPEG-DASH, CMAF або WebRTC).

Which Streaming Protocol is Better for You: RTMP vs. RTSP

На діаграмі показано чотири окремі етапи в ланцюжку доставки відео в реальному часі. Перший етап зазвичай називають "першою милею" (передача відео від камери до сервера), а четвертий - "останньою милею" (відео доставляється на екран користувача, наприклад телевізор). Джерело.

Однак на першій милі RTMP, як і раніше, актуальний, оскільки він чудово справляється із забезпеченням стабільного і плавного відеопотоку між джерелом відео та RTMP-сервером завдяки розділенню великих обсягів даних на маленькі блоки та їхній передачі через кілька віртуальних каналів. Водночас RTMP також відкриває постійне з'єднання між джерелом потоку і сервером, даючи змогу протоколу виступати в ролі носія для доставки пакетів даних.

Доставку пакетів RTMP здійснює за кілька секунд у три етапи:

  • TCP/IP-рукостискання. Клієнт і сервер обмінюються між собою інформацією, щоб "домовитися" про передачу потоку.
  • Встановлення зв'язку. Клієнт і сервер узгоджують усі параметри та специфікації з'єднання за допомогою послідовності повідомлень.
  • Передача потоку. Клієнт надсилає серверу виклик "create Stream", за яким слідує повідомлення перевірки зв'язку та відтворення.

Переваги та недоліки RTMP

Отже, ось які переваги використання RTMP:
  • Низька затримка. З погляду прямих ефірів низька затримка в основному означає надійне з'єднання, яке не відключиться, навіть якщо канал між сервером і глядачем трохи нестабільний. Цей показник також надзвичайно важливий для якості відео. Стабільне з'єднання RTMP забезпечує завдяки тому, що він за замовчуванням створюється на TCP, тоді як низька затримка досягається завдяки використанню ексклюзивного порту 1935, що усуває необхідність буферизації відеопотоку.
  • Адаптованість. У контексті трансляцій адаптованість означає можливість підключатися до трансляції та відключатися від неї коли завгодно, крім того, користувачі можуть промотувати стрім назад (а потім і вперед) і приєднуватися до прямого ефіру після його початку. Це дуже корисні функції для онлайн-конференцій, живих ефірів, стримінгу відеоігор і простого відеодзвінка.
  • Гнучкість. Технологія RTMP дає змогу інтегрувати різні типи мультимедійного контенту в один цілісний пакет, "безшовно" змішуючи відео, аудіо та текст (субтитри) на екрані глядача. Крім цього, протокол підтримує аудіопотоки в AAC- і MP3-форматах, а для передавання відео можуть використовуватися такі формати, як MP4-, FLV- і F4V.
Недоліки використання технології RTMP такі:
  • Немає підтримки HTML5. Протокол RTMP не підтримується HTML5-плеєрами, які наразі є галузевим стандартом для відтворення відео на стороні користувача (у браузерах Mozilla, Google, Microsoft, Apple та Opera). Для "перетворення" RTMP-потоку в HTML потрібен конвектор, наприклад HLS (протокол Http Live Stream, розроблений Apple).
  • Проблеми з пропускною спроможністю. У RTMP є деякі вразливості, пов'язані з низькою пропускною спроможністю. Вони можуть стати причиною періодичних переривань потокової передачі відео, які, як правило, дуже сильно псують враження від перегляду відео.
  • Несумісність із HTTP. Останній недолік RTMP - це неможливість передачі RTMP-потоку через HTTP. Щоб опублікувати RTMP-потік на сайті, потрібно реалізувати спеціальний сервер, такий як Flash Media Server, і використовувати CDN або платформу потокового відео.

Що таке RTSP і як він працює?

Протокол потокової передачі в реальному часі, або RTSP - це менш відомий, ніж RTMP, набір правил для потокової передачі відео за допомогою інтернету. Його представили RealNetworks, Netscape і Колумбійський університет 1996 року для управління розважальними та комунікаційними системами відеотрансляцій у "стилі VHS". Це означає, що під час передачі потоку RTSP-сервер може обробляти команди на VHS-пульті: "Відтворення", "Пауза", "Стоп", а також "Прокрутити вперед" і "Прокрутити назад".

Для забезпечення плавного та узгодженого потокового передавання даних RTSP використовує два інших мережевих протоколи зв'язку - TCP для видачі та приймання команд управління (наприклад, запиту на відтворення або зупинку) і UDP (протокол користувацьких датаграм) для доставки аудіо, відео та даних. Завдяки цьому клієнт може почати відтворювати RTSP-потік під час завантаження потоку.

Хоча RTSP можна використовувати як для прямих трансляцій, так і для передавання відео за запитом, наразі його зазвичай використовують на останній милі для передавання відеопотоку з хмари до програвача пристрою користувача, оскільки цей протокол дає змогу глядачеві відтворювати, призупиняти та перемотувати відео. Крім того, RTSP також популярний у системах, де потрібно передати відеосигнал з камер по IP, наприклад з IP-камер або камер відеоспостереження.

Як працює потокова передача RTSP?

Which Streaming Protocol is Better for You: RTMP vs. RTSP

Схема передавання відео через RTSP. Джерело.

Як протокол зв'язку RTSP працює таким чином. Коли користувач (програма, додаток або камера) хоче передати відеосигнал з віддаленого джерела, користувацький пристрій надсилає RTSP-запит на спеціальний сервер (або платформу потокового відео), щоб визначити доступні параметри, як-от відтворення, пауза, перемотування та запис. Потім сервер повертає на пристрій сигнал зі списком запитів, які він може приймати через RTSP.

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

Оскільки RTSP залежить від виділеного сервера і покладається на RTP, цей протокол не підтримує шифрування відеоконтенту або повторну передачу втрачених пакетів. Крім того, RTSP не сумісний з HTTP, отже, він не дає змоги безпосередньо відтворювати відеопотік у веб-браузері. Для цього потрібно конвертувати відеопотік через спеціальний проміжний сервер.

Переваги та недоліки RTSP

Головні переваги використання RTSP такі:
  • Сегментована потокова передача. Це означає можливість перегляду відео без необхідності його завантаження цілком перед переглядом, що зручно, якщо вам потрібно організувати передачу відео за запитом.
  • Налаштування. RTSP дає змогу створювати власні додатки для потокового передавання відео, які використовуватимуть багатопротокольний підхід TCP + UCD - від відеомесенджерів до програмного забезпечення для онлайн-відеоконференцій.
Ось деякі з недоліків використання потоків RTSP:
  • Менша популярність. Більшість веб-браузерів, відеоплеєрів і потокових сервісів не підтримують RTSP, що ускладнює трансляцію відеосигналу безпосередньо в браузер. Для цього необхідно використовувати спеціальну службу потокової передачі RTSP в реальному часі.
  • Несумісність із HTTP. Оскільки RTSP спочатку створювався для використання в приватних мережах, ви не можете безпосередньо передавати RTSP через HTTP. Для цього потрібне спеціальне програмне забезпечення, яке прийматиме відеопотік з RTSP-сервера, вбудовуватиме його на веб-сторінку і даватиме можливість глядачам відтворювати його на своїх екранах.
Технічні характеристики RTMP vs RTSP:


Який протокол кращий для вас?

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

IP-камери → RTSP. Практично всі IP-камери підтримують RTSP, що обумовлено тим, що IP-камери існували задовго до створення протоколу RTMP. І оскільки RTSP був (і залишається) досить простим і ефективним інструментом для передавання відеосигналу, немає необхідності щось змінювати.

У зв'язці RTSP і IP-камери, сама IP-камера діє як RTSP-сервер. Це означає, що для під'єднання відеокамери до сервера IP-камери і трансляції відео необхідно запустити RTSP-клієнт, наприклад, за допомогою Restreamer Red5 Pro. Цей плагін дає змогу під'єднатися до потоку як клієнту та перенаправити його на інші кінцеві точки, що підтримують Red5 Pro (браузер, що працює з WebRTC).

IoT-пристрої → RTSP або RTMP. Датчики, дрони, роботи, машини та інші пристрої Інтернету речей можуть виграти від можливості транслювати відео в реальному часі. Оскільки така трансляція не тільки покаже, що "бачить" IoT-пристрій, а й дасть змогу керувати ним у реальному часі. Добре, що в більшість цих пристроїв від початку вбудовано програмне забезпечення з підтримкою RTSP. Однак деякі виробники, такі як DJI, віддають перевагу RTMP.

Red5 Pro Mobile SDK → RTSP. Зазвичай мобільні пристрої не підтримують RTSP. Однак його можна легко додати за допомогою Red5 Pro Mobile SDK, який використовує RTSP для трансляції відеоконтенту в реальному часі на мобільні пристрої та назад через додаток Red5 Pro. Таким чином можна створювати як окремі з'єднання джерело-глядач, так і вести велику кількість трансляцій до великої кількості глядачів (передплатників стримера).

YouTube, Twitch, Facebook → RTMP. Незважаючи на відмову від Flash Media Player, RTMP досі використовується як протокол приймання в багатьох сторонніх потокових сервісах і додатках, наприклад, у YouTube Live, Twitch і Facebook. У Zoom також вбудована підтримка виведення відео потоку за RTMP.

Старий апаратний кодувальник → RTMP. Багато апаратних кодувальників відео (особливо це актуально для старих пристроїв) приймають тільки RTMP-потоки. Якщо ваше завдання / проєкт вимагає використання такого кодувальника, то вибір між RTMP і RTSP для вас буде очевидний.

Висновок

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

Щоправда, якщо подумати, вам не обов'язково вибирати між одним із цих протоколів потокового відео. Обравши надійного технічного партнера, такого як компанія-розробник Merehead, ви можете розробити рішення, яке вбере в собі найкраще з цих двох протоколів і омине їхні недоліки. Кастомна розробка потребуватиме трохи більше часу та ресурсів, ніж готові рішення, але в довгостроковій перспективі вона все одно буде більш вигідною.

Оцінити статтю
56 оцінки (4.3 з 5)
Ми прийняли вашу оцінку
Чим ми можемо допомогти вам?
Надіслати
Юрій Мусієнко
Бізнес аналітик
Експерт з розвитку криптовалютних та фінтех-стартапів: криптобіржі, бінарні опціони, P2P-платформи, криптовалютні платіжні шлюзи, токенізація активів тощо. З 2018 року консультує компанії з питань стратегічного планування та масштабування. Докладніше