Wpis z mikrobloga

Mirki, pomocy! Jakim cudem protokół RTSP może mieć ograniczenia dla liczby klientów?

Właśnie przy okazji zabaw z rozszerzaniem serwera domowej automatyki o zaawansowaną analizę obrazu (Frigate postawiłem) odkryłem, że kamera videodomofonu Ip Hikvision (DS-KV8113) nie jest w stanie obsłużyć naraz więcej, niż dwóch strumieni wideo, nawet przy różnych protokołach (Hikvision i RTSP), gdy ciągnę obraz do Frigate albo nawet na VLC go sobie puszczę, drugi strumień jest równolegle pobierany przez rejestrator NVR, to na monitorze domofonu nie mam już obrazu. I w drugą stronę, gdy działa monitor i NVR, nie mogę uzyskać obrazu na frigate.
Byłem pewien, że RTSP to jest typowy protokół UDP i jest mu rybka, czy ten sam strumień odbiera jeden klient, czy pincet, okazuje się, że nie.
Czy da się coś z tym zrobić?

#siecikomputerowe #cctv #elektronika
  • 14
  • Odpowiedz
  • 0
@crazy_wolf: ale własnie to mnie dziwi, przecież jeśliby to było UDP, to procek po prostu puszcza strumień i jedynie autentykuje kolejnych chętnych, zezwalając im na jego pobieranie, strumień jest jeden, każdy chętny mający pozwolenie po prostu z niego korzysta. Autentykacja jest jednorazowym procesem a potem choćby i dziesięciu klientów powinno pracować równolegle bez żadnej różnicy w obciążeniu procka.
W międzyczasie sprawdziłem definicję protokołu na wiki i on niestety dopuszcza również pracę
  • Odpowiedz
procesor transmituje każdy strumień niezależnie. Tylko, że to jest przecież jakieś kretyństwo i w ogóle postawienie na głowie samej idei transmisji obrazu przez IP.


@Jarek_P: To się tak tylko wydaje, że to kretyństwo, no i wcale nie do końca musi tak być. W sensie, zwykle takie sprzęty mają jedno podstawowe oprogramowanie dopasowane do 50 różnych modeli urządzeń. Niektóre np. mogą mieć możliwość skonfigurowania różnych ustawień (np. kodeków czy tam rozdzielczości) względem
  • Odpowiedz
  • 1
@crazy_wolf: tak, mam akcelerator (Coral). W międzyczasie też już się dowiedziałem, że po prostu muszę jeszcze dużo czasu spędzić nad konfiguracją tego cuda, bo póki co mam po prostu dodane cztery kamery, które pracują non stop z pełną rozdzielczością. A że kamery od 4MP w górę, a w polu widzenia każdej z nich jest mnóstwo ruszających się obiektów (w lesie mieszkam). to i CPU ma co robić.

Wracając jeszcze do strumieniowania,
  • Odpowiedz
  • 0
@PotwornyKogut: na głównym. Jak pisałem, dopiero się tego uczę, miałem configu tylko wprowadzony główny strumień w pełnej rozdzielczości i taki był efekt. Aktualnie czytam dokumentację.

  • Odpowiedz
przecież jeśliby to było UDP, to procek po prostu puszcza strumień i jedynie autentykuje kolejnych chętnych


@Jarek_P: to o czym piszesz to multicast, a nie udp. W przypadku połączeń udp każdy klient nawiązuje osobne połączenie (no nie nawiązuje stricte bo to bez połączeniowe proto, ale jest jedna transmisja per client). I nie liczyłbym na wsparcie multicasta w kamerach z chin
  • Odpowiedz
  • 3
@Jarek_P frigate obsługuje restream przez go2rtc. Poszukaj restream w dokumentacji. W ten sposób ominiesz limity na kamerze.
  • Odpowiedz
@Jarek_P: Hikvision tak ma. Ostatnio się na tym złapałem że ich kamery ograniczają ilość połączeń po RTSP. Po ich protokole nie widziałem ograniczeń. Ja już się nauczyłem nie kupować ich produktów jeśli nie muszę.
  • Odpowiedz
Mirki, pomocy! Jakim cudem protokół RTSP może mieć ograniczenia dla liczby klientów?


@Jarek_P: dobre pytanie. A nie ma tam multicast do załączenia?
Btw używaj secondary stream, niskiej rozdzielczości, po pierwsze unikniejsz powyższego ograniczenia, po drugie - mniej cpu zużyjesz na przeskalowywanie obrazu dla corala (do 300x300pix?)
  • Odpowiedz