Video Surveillance

RTP, RTSP, RTMP и ONVIF: как четыре протокола держат весь мировой видеопоток на соплях и гордости

Новости видеонаблюдения Облачные технологии
Если вы хоть раз пытались подключиться к IP-камере, запустить трансляцию или просто понять, почему новенькая «умная» камера за 3 000 рублей показывает кадры с задержкой как будто вещает из прошлого, вы уже знаете страшную правду:
Мир потокового видео работает на наборе протоколов, которые выглядят так, будто их проектировали разные группы программистов в разных эпохах и под совершенно разные задачи — и никого это до сих пор не смущает.
Это как семейное собрание, где дедовский RTP рассказывает о войне пакетов, RTSP командует всеми как старший брат, RTMP сидит в углу и пытается доказать, что он всё ещё нужен, а ONVIF ходит с толстой папкой стандартов и напоминает, что без него здесь была бы анархия.
Пристегнитесь. Дальше будет больно, смешно и неожиданно познавательно.

RTP: рабочая лошадь, которая тянет телегу со всей планеты

Начнём с того, кто в этой семье делает реальную работу — RTP.
Если все остальные протоколы — это менеджеры, завхозы и теоретики, то RTP — шахтёр. Настоящий. В каске. Который грузит пакеты и везёт их через сеть, молясь, чтобы по пути ничего не отвалилось.
RTP тащит:
  • аудио из VoIP
  • видео из IP-камер
  • футуристичные конференции из WebRTC
  • потоки с дронов, роботов, медицинских устройств
  • и вообще всё, что должно доходить в реальном времени
И делает это на UDP, то есть без гарантий.
Как маршрутка:
«Доедем — супер. Не доедем — извините, у меня сын на машине работает».
RTP не обсуждает ваше творчество. Если вы засунули туда H.265, Opus, PCM или видео с вебки за $5 — это ваши проблемы. Он просто возит. И возит уже почти 30 лет. И будет возить дальше, потому что никто не придумал способ доставлять миллионы пакетов в секунду быстрее.
RTP — это вахтовик цифровой эпохи, без которого вообще ничего бы не двигалось.

RTSP: умный, правильный и раздражающий старший брат

Если RTP — это грузовик, то RTSP — это навязчивый менеджер, который сидит над душой и командует:
  • PLAY
  • PAUSE
  • RECORD
  • TEARDOWN (самая драматичная команда из всех существующих)
  • DESCRIBE (как будто требует биографию у камеры)
RTSP — это не про отправку видео.
Это про то, кто, как, куда и на каких условиях будет его смотреть.
Он говорит RTP, что делать, кому отправлять, какие порты открыть и как организовать сессию. И делает это тоном человека, который считает себя намного умнее всех остальных участников процесса.
Почему камеры его обожают?
Потому что:
  • можно управлять PTZ
  • можно на лету менять параметры
  • можно держать живые потоки в низкой задержке
  • можно снимать всё подряд сразу для десятков клиентов
RTSP — это такой «пульт дистанционного управления от мира потоков».
С виду старомодно, но внутри удивительно удобно.
Хотя если бы он был человеком, вы бы начали избегать его разговоров у кофемашины.

RTMP: мертвец, который почему-то всё ещё функционирует

RTMP должен был умереть.
Ещё в 2020 году.
Когда Flash торжественно похоронили, залили землёй, поставили крест и свергли с пьедестала всех «мультимедийных королей нулевых».
Но есть нюанс.
RTMP — идеален как ингест-протокол.
OBS, стримеры, Twitch, YouTube — все продолжают его использовать, потому что он:
  • стабилен
  • понятен
  • не падает
  • и работает, даже если интернет держится на степлере и молитве
Это как старый грузовик «ГАЗ».
Да, гремит. Да, дверца закрывается шлепком колена. Да, заводится с третьего раза. Но он везёт. А значит — не заменяют.
RTMP — это покойник, который встаёт каждое утро и идёт на работу, потому что «кто, если не я?».

ONVIF: контролёр, без которого камеры бы давно перегрызли друг друга

ONVIF — это вообще не протокол доставки видео.
Это конгресс, написанный SOAP-сообщениями и XML-молитвами, чтобы камеры разных брендов перестали вести себя как агрессивные хомяки с проприетарными API.
До ONVIF мир видеонаблюдения выглядел так:
  • у Dahua — свой API
  • у Hikvision — свой
  • у Axis — свой
  • у ноунейм китайцев — вообще что-то, написанное, кажется, под луной
Подключить 10 разных камер было как общаться с 10 людьми, которые каждый говорит на своём языке и одновременно кричат.
ONVIF пришёл и сказал:
«Тихо.
Теперь у нас есть правила.
Вот профили S, G, T.
Вот Discovery.
Вот события.
Вот RTSP-URL.
Все — по очереди!»
С тех пор камеры можно:
  • найти в сети
  • получить список потоков
  • управлять PTZ
  • настраивать кодеки и битрейт
  • подписываться на события
  • и, главное — вытащить RTSP-URL без шаманства
Да, ONVIF использует SOAP.
Да, XML там столько, что плакать хочется.
Но именно он объединяет мир железа в похожий на цивилизацию порядок.

Почему мир не выбрал один протокол, а таскает четыре?

Потому что жизнь несправедлива.
И ещё потому что каждая задача — своя:

Нужно видео «здесь и сейчас»?

→ RTP/RTSP.

Нужно залить поток на стриминговый сервис?

→ RTMP.

Нужно понять, как камера живёт, чем питается и куда отсылает поток?

→ ONVIF.

Нужно позвать соседей посмотреть матч?

→ HLS, чтобы у всех задержка была одинаковая (и никто не орал «ГОООЛ!» раньше времени).
У протоколов конфликтующие цели:
  • камеры хотят маленькой задержки
  • CDN хотят длинной задержки «чтобы было стабильно»
  • фаерволы ненавидят UDP, камеры его обожают
  • браузеры хотят HTTP, камеры хотят RTP
  • инженеры хотят стандарты, бизнес хочет быстрее вчера
Поэтому даже попытки «всё переписать» выглядят как:
«Слушайте, давайте оставим всё как есть, но сверху добавим WebRTC!»
Так и живём.

Другие протокольные герои и антигерои мира видео

Если думали, что RTP/RTSP/RTMP/ONVIF — это всё, то держитесь.

HLS — сын Apple, король сегментов

Работает везде.
Стабильно.
С задержкой в 20 секунд.
Зато без нервов.

MPEG-DASH — брат HLS, только из семейства стандартов

Любим корпорациями.
Терпим пользователями.
Ненавидим стримерами из-за задержки.

WebRTC — магия и боль одновременно

Минимальная задержка.
Ультрашифрование.
ICE, STUN, TURN — звучит как заклинание.
Работает, но требует жертв (обычно нервных).

SRT и RIST — элита видеодоставки для телекома

Оптимизированы под ужасные сети.
Дорогие.
Надёжные.
Железно выживают там, где обычные протоколы бегут плакать.

MPEG-TS over UDP — телевизионная классика

Если завтра наступит конец света,
останутся:
  • тараканы,
  • ядерные боеголовки,
  • и MPEG-TS.

Итог, который не хочется признавать, но придётся

Мир видео — это не стройная архитектура.
Это зоопарк, в котором:
  • RTP таскает мешки
  • RTSP командует
  • RTMP старается доказать, что он ещё на что-то годится
  • ONVIF заставляет всех играть по правилам
  • HLS и DASH вещают толпам
  • WebRTC бегает с минимальной задержкой
  • SRT спасает важные потоки
  • MPEG-TS живёт в своём болотце и не собирается уходить
Это не красиво.
Не логично.
Не оптимально.
Но это работает.
Иногда даже удивительно хорошо.
И пока инженеры мечтают придумать «идеальный единый протокол», индустрия продолжает пользоваться тем, что есть. Потому что главное в потоковом видео — картинка должна дойти.
А уж каким протоколом — это уже вопрос философский.