Введение в протокол 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.