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 Media
→ Open 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ć