Iedere seconde snapshot van rtsp stream
Gepubliceerd op 30 januari 2022 • 2 min leestijd • 269 woorden
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]wat-is-domotica 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
bash
#!/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;
doneHet 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.


