2011-10-11 16 views
7

Mam prostego klienta Rtsp ... Klient wysyła komendy Rtsp do serwera Rtsp i pobiera pakiety RTP z serwera.Prowadzenie Alive Rtsp Connection

Problemem jest to, że po pewnym czasie (około 3-4 minut) My 3rd party RTSP Server połączenia rozwijanej z moim klientem RTSP.

nie wdrożyły RTCP ... Biorę RTP pakietów z serwera rtsp ale nie wysyła do wszystkich pakietów RTCP ...

robię proste wyszukiwanie i okaże się, że niektórzy faceci używać niektórych poleceń RTSP [jak OPCJE, zestaw parametrów GET-parametrów] zbyt Podtrzymywanie połączenia między serwerem a klientem RTSP ... ale w moim przypadku to nie zadziała ...

Oto moje pytania:

  1. Jaki jest najlepszy sposób na utrzymanie połączenia z serwerem RTSP?
  2. Czy muszę zaimplementować RTCP [wysłać pakiety RTCP do serwera]? Czy połączenie może zostać usunięte, ponieważ nie wysyłam pakietów RTCP na serwer?

Odpowiedz

6

Jaka jest wartość limitu czasu, który otrzymasz w odpowiedzi SETUP? Czy używasz tej wartości do implementacji funkcji utrzymywania aktywności?

Session = "Session" ":" session-id [";" "timeout" "=" delta-sekundy ]

Ogólnie RTSP oparty jest na TCP, a RTP oparty na UDP. Idealnie więc oba kanały wymagają utrzymywania funkcjonalności. Jeśli sesja RTP jest zamknięta, nie oznacza to, że połączenie RTSP powinno być również wyłączone, podczas gdy kanały RTP muszą być zamknięte w przypadku przerwania kanału RTSP.

1) Jaki jest najlepszy sposób na utrzymanie połączenia z serwerem RTSP? -> Wysyłaj dowolne żądanie RTSP okresowo (OPCJE, SET_PARAMETER lub GET_PARAMETER) przed wartością timeout otrzymaną w odpowiedzi SETUP.

2) Czy muszę zaimplementować RTCP [wysłać pakiety RTCP do serwera]? Czy połączenie może zostać usunięte, ponieważ nie wysyłam pakietów RTCP na serwer? -> RFC (RTSP lub RTP) nie wymaga wymagania RTCP, aby utrzymać kanały RTP przy życiu.

+0

mój 3. Serwer RTSP partia nie dać czas sesji na wartości ... chociaż wysłać opcje polecenia na każde 5 sekund spada połączenia .. – Novalis

+0

Oznacza to, że twój serwer oczekuje pakietów RTCP. – Alam

+0

Tak ... Kiedy wysyłam pakiety RTCP, nie zrzucają połączeń ... Ale "zjada" przepustowość aksycji. – Novalis

0

Wysłanie żądania OPCJE nie działa dla mnie.

Jedynym polecenie RTSP, że mogę wysłać, aby utrzymać połączenie przy życiu było GET_PARAMETER

Mój czas oczekiwania wynosi 60s i wysłać żądanie GET_PARAMETER co 40s

działa jak marzenie!

(Nie, nie trzeba RTCP pakiety do serwera)

+1

. Uwaga: "GET_PARAMETER" nie jest obsługiwany przez wszystkie serwery RTSP. Przed wysłaniem sprawdź odpowiedź na "OPCJE", jeśli zawiera parametr "GET_PARAMETER". – Gediminas