Iedere seconde snapshot van rtsp stream
Posted on January 30, 2022 (Last modified on November 13, 2023) • 2 min read • 272 wordsDacht 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
<pre class="wp-block-code has-small-font-size">```
#!/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.