Поддержание живого Rtsp-соединения

У меня есть простой клиент Rtsp... Клиент отправляет команды Rtsp на Rtsp Server и получает RTP-пакеты от сервера.

Проблема в том, что через некоторое время (около 3-4 минут) мой RTSP-сервер стороннего производителя разорвал соединение с моим RTSP-клиентом.

Я не реализовал RTCP... Я беру пакеты rtp с сервера rtsp, но не отправляет пакет RTCP...

Я делаю простой поиск и обнаруживаю, что некоторые парни тоже используют некоторые команды RTSP [например, OPTIONS, SET PARAMETER-GET PARAMETER ]. Сохраняют связь между сервером RTSP и клиентом... Но в моем случае это не работает...

Вот мои вопросы:

  1. Каков наилучший способ сохранить соединение с RTSP-сервером?
  2. Должен ли я реализовать RTCP [отправить пакеты RTCP на сервер]? Может ли соединение оборваться, потому что я не отправляю пакеты RTCP на сервер?

2 ответа

Решение

Какое значение времени ожидания вы получаете в ответе SETUP? Используете ли вы это значение для реализации функции поддержки активности?

Session = "Session" ":" session-id [";" "timeout" "=" дельта-секунды]

Обычно RTSP основан на TCP, а RTP основан на UDP. Поэтому в идеале оба канала должны поддерживать работоспособность. Если сеанс RTP закрыт, это не означает, что соединение RTSP также должно быть разорвано, тогда как каналы RTP должны быть закрыты на разрыв канала RTSP.

1) Как лучше всего поддерживать соединение с RTSP-сервером? -> Периодически отправлять любые запросы RTSP (OPTIONS, SET_PARAMETER или GET_PARAMETER) timeout значение, полученное в ответе SETUP.

2) Должен ли я реализовать RTCP [отправлять пакеты RTCP на сервер]? Может ли соединение оборваться, потому что я не отправляю пакеты RTCP на сервер? -> RFC (RTSP или RTP) не предписывает требование RTCP поддерживать каналы RTP живыми.

Отправка запроса OPTIONS не сработала для меня.

Единственная команда RTSP, которую я мог послать, чтобы поддержать соединение, была GET_PARAMETER

Мой тайм-аут 60 с, и я отправляю запрос GET_PARAMETER каждые 40 с

Работает как шарм!

(Нет, вам не нужно RTCP пакеты на сервер)

Другие вопросы по тегам