WebRTC - płynne wideo i audio w aplikacji webowej
O WebRTC
WebRTC wykorzystuje bezpośrednią komunikację klienta (np. przeglądarki internetowej) z kamerą.
Bramka AIS dom, mogła by skonfigurować połączenie przeglądarki z kamerą, a następnie przeglądarka i kamera komunikowały by się bezpośrednio (nie obciążając bramki).
To byłoby świetnie rozwiązanie… gdyby nie jeden problem… mało która kamera obsługuje WebRTC.
Zainspirowani tym co zrobiło Ubiquiti Oferta PRO | AI-Speaker
Szukaliśmy rozwiązania OpenSource, które pozwoli na przerabianie wideo z RTSP na WebRTC - tak żeby w aplikacji webowej mieć jednocześnie obraz i dźwięk z kamer i żeby ten obraz był z mniejszym opóźnieniem.
RTSPtoWeb
Okazuje się, że jest cos takiego, napisał to sprytny rosyjski programista Andrey… ach te Andrusze
rozwiązanie jest napisane w języku GO, który mamy na bramce:
Chwilę się tym pobawiliśmy i wydaje się, że to jest przyszłość.
Efekt w porównaniu z ffmpeg robi wrażenie (oczywiście nie aż takie jak monitorig Ubiquiti: Oferta PRO | AI-Speaker) ale jest o wiele lepiej niż obecne rozwiązanie oparte na ffmpeg.
Mamy w planie dodać nowe demo systemu AIS, bo po przeprowadzce nie mieliśmy czasu jeszcze podłączyć urządzeń. Na dom-demo sprawdzimy “w praniu” to rozwiązanie z WebRTC.
Opis techniczny, dla tych którzy by chcieli sprawdzić jak to działa na bramce
To jest opis dla zaawansowanych użytkowników. Jeżeli ta metoda, sprawdzi się na naszych testach, to z czasem dodamy to rozwiązanie do bramek w formie integracji z aplikacji. Jeżeli konsola nie jest ci znana i nie wykonywałeś
hello.go
z wcześniejszego opisu, to możesz mieć kłopoty z instalacją RTSPtoWeb.
W konsoli na bramce wpisujemy:
cd ~
git clone https://github.com/deepch/RTSPtoWeb
GO111MODULE=on go run *.go
teraz w przeglądarce wchodzimy na:
http://<ip-bramki>:8083/
dodajemy nowy stream
i możemy go uruchomić w WebRTC:
mamy płynny obraz
a teraz klikamy w
albo wchodzimy na adres:
http://<ip-bramki>:8083/pages/multiview/full?grid=5#
i mamy siatkę z kamerami: