База знаний

Введение в протокол RTSP

RTSP - протокол потоковой передачи в реальном времени, который является надежной технологией для работы с видео. Его основное применение заключается в управлении передачей аудио/видео между двумя конечными точками и обеспечении плавной транспортировки потокового контента через Интернет с минимальной задержкой.

В дополнение к протоколу обмена данными в режиме реального времени (RTMP), протокол RTSP был когда-то лидером в сфере потоковой передачи данных. Сейчас это уже не так. Однако, RTSP все еще является стандартом в многих архитектурах систем наблюдения и замкнутого телевидения (CCTV). Причина этого проста: этот протокол по-прежнему является предпочтительным протоколом для IP-камер..

В этой статье мы рассмотрим спецификацию RTSP, историю потоковой передачи RTSP и типичные рабочие процессы с использованием этого протокола.

Что такое протокол?

Протоколы предоставляют набор правил, определяющих, как данные передаются от одной взаимодействующей системы к другой. Например, протокол передачи гипертекста (HTTP) определяет, как данные веб-страницы и гипертекстовые ссылки передаются через Всемирную паутину, управляя связью между веб-серверами и браузерами.

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

Что такое RTSP?

RTSP - это протокол прикладного уровня, который используется для управления серверами, транслирующими мультимедиа, с возможностью паузы и возобновления воспроизведения. Это облегчает управление мультимедиа в режиме реального времени через связь с сервером без фактической передачи данных. В свою очередь, RTSP-серверы часто используют протокол передачи данных в реальном времени (RTP) вместе с протоколом управления данными в реальном времени (RTCP) для передачи фактических данных потока.

Из предложения стандартов от 1998 года приводится следующее определение RTSP:

«Протокол потоковой передачи в реальном времени (RTSP) устанавливает и контролирует один или несколько синхронизированных по времени потоков непрерывного мультимедиа, такого как аудио и видео. Обычно он не доставляет непрерывные потоки сам по себе, хотя возможно чередование непрерывного медиапотока с потоком управления. Другими словами, RTSP действует как «сетевой пульт дистанционного управления» для мультимедийных серверов».

Когда пользователь хочет запустить трансляцию видео с IP-камеры при помощи протокола RTSP, устройство отправляет соответствующий запрос на сервер. Этот запрос инициирует процесс передачи данных. Затем видео- и аудиопотоки передаются с использованием протокола RTP. Можно сказать, что RTSP в этом случае играет роль пульта дистанционного управления трансляцией, а RTP выступает в качестве самой трансляции.

RTSP: Характеристики

  • Аудиокодеки: AAC, AAC-LC, HE-AAC+ v1 и v2, MP3, Speex, Opus, Vorbis.
  • Видеокодеки: H.265 (предварительный просмотр), H.264, VP9, VP8.
  • Совместимость воспроизведения: не поддерживается широко и редко используется для воспроизведения (Quicktime Player и другие RTSP/RTP-совместимые проигрыватели, медиаплеер VideoLAN VLC, мобильные устройства, совместимые с 3Gpp).
  • Преимущества: низкая задержка и повсеместное использование в IP-камерах.
  • Недостатки: Не оптимизирован для качества работы и масштабируемости.
  • Задержка: 2 секунды
  • Варианты форматов: RTSP как общий термин описывает весь стек RTP, RTCP (протокол управления в реальном времени), RTSPS (RTSP через SSL/безопасный RTSP) и старый добрый RTSP.

RTSP-запросы

RTSP использует следующий набор команд, обычно отправляемых от клиента к серверу, при согласовании и управлении передачей мультимедиа:

  • Options: Этот запрос определяет, какие другие типы запросов будет принимать медиасервер.
  • Describe: запрос описания определяет URL-адрес и тип данных.
  • Announce: Метод объявления описывает представление при отправке от клиента к серверу и обновляет это описание при отправке от сервера к клиенту.
  • Setup: Запросы на настройку описывают, как должен быть передан медиапоток, перед тем как будет отправлен запрос на воспроизведение.
  • Play: Запрос на воспроизведение начинает передачу медиаданных, сообщая серверу о начале отправки данных.
  • Pause: запросы на паузу временно приостанавливают передачу потока.
  • Record: Запрос на запись начинает запись на носитель.
  • Teardown: Этот запрос полностью завершает сеанс и останавливает все медиапотоки.
  • Redirect: Запросы на перенаправление уведомляют клиента о том, что он должен подключиться к другому серверу, указывая новый URL, на который клиент может отправлять запросы.

История потоковой передачи RTSP

Протокол RTSP, изначально разработанный компаниями Netscape Communications, Progressive Networks (ныне RealNetworks) и Колумбийским университетом, был опубликован Internet Engineering Task Force в 1998 году. Релиз версии 2.0 в 2016 г., внес поправки в предыдущую версию с целью уменьшения времени отклика от медиасервера.

До появления потоковой передачи с адаптивным битрейтом через протоколы на основе HTTP большинство потоков в Интернете обеспечивалось как RTSP, так и RTMP. Но поскольку оба требуют выделенных серверов, они не подходят для крупномасштабных трансляций.

RTSP в данный момент используется главным образом как транспортный протокол. Большинство рабочих процессов задействуют медиасервер для получения данных, переданных через RTSP/RTP, после чего переупаковывает файл для его последующей доставки на устройства вывода — от iPhone вплоть до смарт-ТВ.

Современные протоколы вроде Secure Reliable Transport (SRT) сейчас активно конкурируют с RTSP в сфере передачи видео. Но, несмотря на все это, RTSP по-прежнему широко применяется в видеонаблюдении в качестве фактического стандарта для IP-камер.

Альтернатива RTSP

Если вы подыскиваете надёжную замену для RTSP, наиболее популярным протоколом передачи данных, то скорее всего, это будет RTMP. Фактически, 76,6% опрошенных участников заявили, что применяют RTMP для получения данных.

Как видно из нижеприведенной таблицы, WebRTC и SRT являются популярными форматами, и лишь 18,6 % производителей контента сегодня используют RTSP.

Вот сравнение этих трех вариантов:

RTMP

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

Например, Twitch и YouTube поддерживают RTMP только в режиме прямой трансляции с небольшой задержкой. Это значит, что вам придётся либо с самого начала кодировать ваш поток в формате RTMP, либо перепаковать любой RTSP-поток в формат RTMP.

SRT

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

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

WebRTC

WebRTC на текущий момент является наиболее быстрым доступным решением, обеспечивая практически мгновенную передачу звука и видео в любом современном браузере. Это также единственное решение, если простота имеет ключевое значение. В отличие от протоколов RTMP, RTSP и SRT, WebRTC способен передаваться от одного конца до другого без необходимости в какой-либо дополнительной обработке.

Раньше использование протокола WebRTC ограничивалось маломасштабными операциями по передаче потоков и публикации контента в браузере, однако теперь все меняется. Протокол WebRTC HTTP Ingest (WHIP) предоставляет программное и аппаратное обеспечение, необходимое для кодирования в соответствии со стандартными сигнальными протоколами при взаимодействии с серверами для работы с медиаконтентом. Таким образом, этот протокол устраняет препятствия на пути установления соединения между кодировщиками и серверами для обработки медиаданных с использованием протокола WebRTC.

Потоковая передача с IP-камеры

Как отмечалось выше, протоколы RTSP и RTSP образуют идеальную пару. Зачастую медиасерверы принимают сигналы RTSP от камер видеонаблюдения.

Эти удобные в использовании потоковые устройства не требуют отдельного кодера и часто используются в видеосистемах наблюдения, конференциях и прямых трансляциях мероприятий. Вам потребуется перекодировать исходный поток в transmux формат для воспроизведения на вебсайтах и мобильных приложениях.

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

Типичный рабочий процесс RTSP

RTSP является протоколом с отслеживанием состояний, который чаще применяется для приема видеосигнала, нежели для его отправки и воспроизведения. Устройства на базе Android и iOS обычно не имеют предустановленных RTSP-плееров, из-за чего RTSP нечасто используется для сквозного стриминга. Вместо этого, большинство медиакомпаний используют стриминговые серверы вроде Wowza для преобразования RTSP-потока в более привычный для пользователей формат, например HLS.

Magewell предлагает прямую интеграцию со стриминговой платформой Wowza Video. Обновлённая прошивка 2.2.98 мультимедийного кодера Magewell Ultra Encode AIO теперь поддерживает прямую интеграцию с Wowza. Это сочетание упрощает и ускоряет процессы стриминга, от кодирования сигнала до его доставки с помощью CDN Wowza.