📸 Kamery FFmpeg - diagnozowanie problemów

:camera_flash: Kamery FFmpeg - diagnozowanie problemów

Integracja ffmpeg umożliwia wykorzystanie dowolnego źródła wideo jako kamery w Home Assistant za pośrednictwem FFmpeg.
W tym wpisie pokażemy jak to działa w Home Assistant i jak diagnozować problemy.

1. Sprawdź, czy obraz z kamery działa w VLC

VLC jest darmowym i otwartym, wieloplatformowym odtwarzaczem multimedialnym, który odtwarza różnego rodzaju strumienie video.

Jest to bardzo dobry program do sprawdzenia czy video z naszej kamery działa poprawnie, żeby wykonać sprawdzenie, uruchamiamy program VLC, przechodzimy do MediaOpen Network Stream i podajemy adres naszej kamery:

jak wideo działa w VLC to możemy przejść dalej

2. Sprawdz czy na bramce działają potrzebne programy

Do działania kamer z pośrednictwem FFmpeg potrzebny jest oczywiście program ffmpeg i pakiet pyav, sprawdzamy obecność progmów wykonując poniższe polecenia w konsoli:

ffmpeg

pyav --version

jeżeli jest jakiś problem z pyav, np. tak jak pniżej

to instalujemy najnowszą wersję ha-av (pyav dostarczane jest przez pakiet ha-av który jest forkiem pyav z dodanymi zmianami i poprawkami pod HA)

instalacje wykonujemy poleceniem

pip install ha-av

ponownie sprawdzamy czy pyav działa, wpisując komendę pyav --version

Jak mamy potrzebne programy to możemy przejść dalej.

3. Sprawdzamy czy ffmpeg radzi sobie z naszym strumieniem

w konsoli wpisujemy

ffmpeg -i rtsp://NASZ_URL_VIDEO  -f null -

np:

ffmpeg -i http://pendelcam.kip.uni-heidelberg.de/mjpg/video.mjpg  -f null -

W większości przypadków ffmpeg automatycznie wykrywa wszystkie opcje potrzebne do odczytania strumienia. Ale niestety czasami może się zdarzyć, że trzeba ustawić dodatkowe opcje, aby ffmpeg odtworzył strumień wideo.

Tu widać, że ffmpeg nie poradził sobie z odtwarzaniem wideo

ale pomogła dodatkowa opcja -rtsp_transport tcp

ffmpeg -rtsp_transport tcp -i rtsp://NASZ_URL_VIDEO  -f null -

Opcje opisane są na stronie ffmpeg:

https://ffmpeg.org/ffmpeg.html#Options

Gdy już ffmpeg odtwarza wideo to sprawdzmy czy jest je w stanie zapisywać.
Przechodzimy do folderu ~/AIS/www i nagrywamy jedną klatkę wideo do pliku:

cd ~/AIS/www
ffmpeg -rtsp_transport tcp -i rtsp://NASZ_URL_VIDEO  -ss 0:0:2 -frames 1  test.jpg

sprawdzamy czy plik z obrazem działa, w przeglądarce wchodzimy na adres naszej bramki z końcówką /local/test.jpg

Nagrywamy testowe wideo z kamery

cd ~/AIS/www
ffmpeg -fflags nobuffer  -rtsp_transport tcp  -i  rtsp://NASZ_URL_VIDEO -acodec copy -vcodec copy test.mp4

sprawdzamy nagrane wideo pod linkiem http://ais-dom/local/test.mp4

jak to wszystko działa, to możemy skonfigurować kamerę w HA

4. Konfiguracja kamery w HA

w configuration.yaml dodajemy konfigurację kamery

camera:
  - platform: ffmpeg
    input: http://pendelcam.kip.uni-heidelberg.de/mjpg/video.mjpg
  - platform: ffmpeg
    input: -rtsp_transport tcp -i rtsp://NASZ_URL_VIDEO

restartujemy HA i sprawdzamy działanie kamery w aplikacji

PS

jak nadal jest problem i nie wiadomo o co chodzi, to polecamy wypróbowanie HA Supervised, tak jak opisaliśmy w tym wątku:

W HA Supervised mamy fajny dodatek motionEye i kamery działają lepiej / prościej (nawet te wpięte po usb), będziemy o tym rozwiązaniu jescze pisać

2 polubienia

@jolka Czy do wersji Ola ten patent można użyć?
Kamery są po onvif i oczywiście screenschot działa ale obrazu nie ma.

Ze swojej strony polecam serwer GO2RTC (mam go w dockerze)

pewnie jest sposób na instalacje w AIS,
serwer go2rtc jest również w dodatku frigate addon
Chociaż teraz widzę że jest niby jako addon również osobno,
ale nie wiem czy to nie jest tylko integracja -WebRTC Camera


Działa to na takiej zasadzie: wszytskie kamery mają jednego klienta
jest nim serwer go2rtc, z tego serwera stremuję do różnych klientów
SurveliaceStation, Frigate, TinyCamPro na TV i zegarek,
no i do HA jako karta WEBRTC (custom:webrtc-camera)
Działa to rewelacyjnie, ładowanie obrazu z kamery czy to lokalnie czy przez tunel działa błyskawicznie.
8 kamer ładuje się w okolo 4 sekundy, i nie ma żadnych lagów, żadnych opóźnień obraz jest na żywo.

Mamy możliwość restreamować w różnych konfiguracjach:

4 polubienia

Mi za to na trzech bramkach DEV3 zniknął podgląd kamer z zewnątrz. Nie działają ani z aplikacji Ais ani z przeglądarki Chrome w Windows. Lokalnie działają bez problemów, ale z zewnątrz już nie. Do czasu aktualizacji do Ola była wszystko ok. Nie mogę zdiagnozować problemu. Wam WebRtc działa z zewnątrz, macie podgląd z kamer?