// Кодирование

Какой Протокол Стриминга Лучше для Вас: RTMP или RTSP

Содержание

#1. Что такое протокол связи
#2. Что такое RTMP и как он работает
#3. Как работает потоковая передача RTMP
#4. Преимущества и недостатки RTMP
#5. Что такое RTSP и как он работает
#6. Как работает потоковая передача RTSP
#7. Преимущества и недостатки RTSP
#8. Технические характеристики RTMP vs RTSP
#9. Какой протокол лучше для вас
#10. Заключение

Появились вопросы?
Олег Колесников
Автор статьи
Merehead занимается разработкой веб проектов

Сравним протоколы потоковой передачи RTMP и RTSP. Расскажем, как они работают, какие у каждого плюсы и минусы. Подскажем, как выбрать в вашем случае.

Если вы хотите запустить платформу для трансляции видео с минимальной задержкой, у вас будет весьма ограниченное количество протоколов потоковой передачи данных для решения этой задачи. При этом если в качестве канала передачи видеопотока вы хотите использовать интернет, выбор будет еще меньше, поскольку вам нужно будет преодолеть ряд трудностей, например — джиттер, лаги или потеря пакетов. В этой статье мы сравним два таких протокола связи — RTMP и RTSP, опишем их преимущества с недостатками, а также дадим некоторые рекомендации по выбору наиболее подходящего для вас варианта.

Что такое протокол связи

Какой Протокол Стриминга Лучше для Вас: RTMP или 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 или RTSP

Как работает потоковая передача RTMP

Как правило, прямая видеотрансляция работает следующим образом: камера снимает видео (или видеокарта захватывает экран) и отправляет его на хост или сервер видеоплатформы через кодировщик (этот этап обычно называют «первой милей»). Затем сервер или видеоплатформа обрабатывает этот поток и передает его дальше через сеть доставки контента (CDN) для распространения видеопотока на устройства пользователей (это «последняя миля»). Когда еще работал Flash, оба эти этапа проходили посредством RTMP, но с тех пор, как Flash устарел, RTMP больше не работает на «последней миле». С этого момента поток должен перехватить другой протокол связи (HLS, MPEG-DASH, CMAF или WebRTC).

Какой Протокол Стриминга Лучше для Вас: RTMP или RTSP
На диаграмме показаны четыре отдельных этапа в цепочке доставки видео в реальном времени. Первый этап обычно называют «первой милей» (передача видео от камеры до сервера), а четвертый — «последней милей» (видео доставляется на экран пользователя, например телевизор). Источник

Однако на первой миле RTMP по-прежнему актуален, поскольку он отлично справляется с обеспечением стабильного и плавного видеопотока между источником видео и RTMP-сервером за счет разделения больших объемов данных на маленькие блоки и их передачу через несколько виртуальных каналов. При этом RTMP также открывает постоянное соединение между источником потока и сервером, позволяя протоколу выступать в качестве носителя для доставки пакетов данных.

Доставку пакетов RTMP осуществляет за несколько секунд в три этапа:

  1. TCP/IP-рукопожатие. Клиент и сервер обмениваются между собой информацией, чтобы «договориться» о передаче потока.
  2. Установление связи. Клиент и сервер согласовывают все параметры и спецификации соединения с помощью последовательности сообщений.
  3. Передача потока. Клиент отправляет серверу вызов «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

Какой Протокол Стриминга Лучше для Вас: RTMP или 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 Какой Протокол Стриминга Лучше для Вас: RTMP или RTSP Какой Протокол Стриминга Лучше для Вас: RTMP или 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, вы можете разработать решение, которое вберет в себе лучшее этих двух протоколов и обойдет их недостатки. Кастомная разработка потребует немного больше времени и ресурсов, чем готовые решения, но в долгосрочной перспективе она все равно будет более выгодной.

Отзывы наших клиентов

Разработка экосистемы, предназначенной для предоставления разнообразных услуг цифровым активам под одной оболочкой на основе технологии блокчейна

Есть вопросы? Задайте их здесь

Имя *
Email *
Телефон
Ваш бюджет
Сообщение
 

С 2015 года помогаем клиентам реализовывать идеи!

Подпишитесь на свежие статьи