Skip to content

RTSP

media.play.rtsp

Транспорт

RTSP 1.0 и RTP/RTCP interleaved в одном TCP-соединении. UDP-транспорт не поддерживается: SETUP с UDP возвращает 461.

Поддерживаемые кодеки

Видео

  • H.264
  • HEVC
  • AV1

Аудио

  • AAC
  • Opus
  • PCMA
  • PCMU

Список относится к RTP-пакетизации Sapsan; возможность декодирования зависит от клиента. Для корректной выдачи нужны параметры кодека и совместимый формат RTP-полезной нагрузки.

Sapsan работает RTSP-сервером и отдаёт совместимые дорожки в видеорегистраторы, системы аналитики и другие медиасерверы. Доступность стрима по RTSP зависит от его кодеков и RTP-пакетизации.

AAC передаётся как MPEG4-GENERIC с AU-заголовками; AV1 — с RTP-фрагментацией и sequence header. Для MP4A-LATM и MPEG Audio (MPA, MP2/MP3) есть объявления в SDP, но полноценная соответствующая RTP-упаковка текущим выходным трактом не обеспечивается; они не включены в список выше. При необходимости преобразуйте звук в AAC или Opus. Наличие имени кодека в SDP само по себе не гарантирует совместимость.

Настройка

Достаточно включить RTSP-слушатель:

Настройки задавайте через central в конфиге стримера.

listeners:
  rtsp:
    - port: 554

Проигрывание

ffplay rtsp://server:554/cam1

Что умеет сервер:

  • методы OPTIONS, DESCRIBE, SETUP, PLAY, TEARDOWN;
  • транспорт RTP/AVP/TCP (interleaved) — работает через один TCP-порт, дружелюбен к файрволам;
  • RTCP Sender Report перед первым RTP-пакетом каждой дорожки — клиент сразу получает привязку к абсолютному времени;
  • видео H.264, HEVC и AV1, аудио AAC (RFC 3640);
  • исходные таймстемпы потока сохраняются.

Путь URL — точное имя стрима: rtsp://server:554/group/cam1 выбирает group/cam1. Для защищённого просмотра добавьте ?token=<token>: запрос проверяется общим механизмом авторизации просмотра. Без токена доступ зависит от настроек авторизации. Токен передаётся в URL, HTTP Bearer-заголовок не заменяет его в RTSP.

Для каждой дорожки клиент выполняет SETUP с RTP/AVP/TCP;unicast;interleaved=0-1 (для следующей дорожки — другая пара каналов). Затем PLAY начинает live. Также поддерживаются PAUSE и GET_PARAMETER для поддержания сессии. Числовой NPT не выбирает архив: для архива используйте отдельный режим RTSP DVR.

Что дальше