RTSP

Из Википедии, бесплатной энциклопедии

Потоковый протокол реального времени (англ. real time streaming protocol, сокр. RTSP) — прикладной протокол, предназначенный для использования в системах, работающих с мультимедийными данными (мультимедийным содержимым, медиасодержимым), и позволяющий удалённо управлять потоком данных с сервера, предоставляя возможность выполнения команд, таких как запуск (старт), приостановку (пауза) и остановку (стоп) вещания (проигрывания) мультимедийного содержимого, а также доступа по времени к файлам, расположенным на сервере. Разработан IETF в 1998 году и описан в RFC 2326.

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

По синтаксису и операциям протокол похож на HTTP. Однако между протоколами RTSP и HTTP есть ряд существенных различий. Одно из основных заключается в том, что в первом и сервер, и клиент способны генерировать запросы. Например, видеосервер может послать запрос для установки параметров воспроизведения определенного видеопотока. Также протоколом RTSP предусматривается, что управление состоянием или связью должен осуществлять сервер, тогда как HTTP вообще никакого отношения к этому не имеет. Наконец, в RTSP данные могут передаваться вне основной полосы (англ. out of band) другими протоколами, например RTP, что невозможно в случае HTTP.

RTSP-сообщения посылаются отдельно от мультимедийного потока. Для них используется соединение по специальному порту, по умолчанию с номером 554. Запрос на сервер посылается в текстовом виде в формате: метод <абсолютный_адрес>[/медиасодержимое] <версия_протокола>. Вместе с запросом могут быть переданы дополнительные служебные поля (на новых строках запроса).

Методы протокола:

  • describe — запрос описания содержимого, например, в формате SDP;
  • options — запрос поддерживаемых методов;
  • play — запрос начала вещания содержимого;
  • pause — запрос временной остановки вещания;
  • record — запрос на записывание содержимого сервером;
  • redirect — перенаправление на другое содержимое;
  • setup — запрос установки транспортного механизма для содержимого;
  • announce — обновление данных описания содержимого;
  • get_parameter — запрос указанных параметров у сервера;
  • set_parameter — установка параметров сервера;
  • teardown — остановка потока и освобождение ресурсов.

Пример запроса: PLAY rtsp://example.com/video/test.mpg/streamid=0 RTSP/1.0

Следующее ПО может выступать в роли клиента RTSP: