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.