Dacht je dat het niet mogelijk was om een RTSP-stream weer te geven op een Grafana dashboard? Think again. Sinds kort maak ik iedere seconde een snapshot van een RTSP-stream en geef die weer op mijn dashboard.

In mijn kantoor heb ik een monitor staan, waarop een Grafana dashboard wordt weergegeven. Hierop laat ik van alles zien wat ons huisautomatiseringssysteem Home Assistant meet en regelt.

Een van de dingen die ik wilde weergeven was een overzicht van onze camera’s en dan vooral van de deurbel. Helaas ondersteunt Grafana (in ieder geval op dat moment niet) geen RTSP streams.

Om toch de camera’s weer te geven heb ik een script gemaakt die iedere seconde een snapshot maakt van de camera. Deze snapshots gebruik ik vervolgens in Grafana in een HTML-frame.

Onderstaande script kun je gebruiken voor je snapshot van een RTSP-stream

#!/bin/bash
url0='rtsp://10.0.x.x:7447/<scream>'
url='rtsp://10.0.x.x:7447/<stream>'
url1='rtsp://10.0.x.x:7447/<stream>'
url2='rtsp://10.0.x.x:7447/<stream'
while true; do
  # Do something
  ffmpeg -y -i $url -r 1 -vsync 1 -qscale 1 -frames:v 1  -loglevel quiet -f image2 /containers/url/public_html/camera/belvoordeur-klein.jpg
  sleep 1;
done

Het is een beetje behelpen, aangezien er een zekere vertraging zit in het maken van een snapshot van een stream, maar het is beter dan niets.

Update

Ondertussen gebruik ik bovenstaande dashboard en script niet meer. Ik gebruik tegenwoordig een dashboard wat volledig in Home Assistant is gemaakt. Dit dashboard stream ik naar een Google Chromecast die op de HDMI-poort van mijn monitor is geplaatst. Op deze manier hoef ik niet een apart Grafana dashboard te onderhouden en bespaar ik ook nog een klein beetje stroom door een Chromecast te gebruiken in plaats van een Raspberry Pi.