Moin, ich hab auf dem Dach ne Webcam, die alle 10 Sekunden ein jpg im Netz speichert. Zusätzlich befindet sich dort eine Wetterstation, die alle paar Sekunden per 433 Mhz und mqtt Brücke - Luftfeuchtigkeit,Temperatur, Windstärke, Böen und Windrichtung und Niederschlagsmenge ins Netz speist. Diese Daten werden zusätzlich auf einer mysql Datenbank abgelegt. Jede Nacht wird mit ffmpeg aus den Bilder ein Video generiert. Ich würde nun gerne die "live" Wetterdaten als fortlaufenden Plot in die Webcam Bilder einbetten, allerdings weiß ich nicht so wirklich mit welchen "tools" ich das einigermaßen elegant gebaut bekomme. Evtl hat hier ja jemand nen heißen Tipp... 1. Wie ich die Daten aus der mysql Datenbank in einen Plot bekomme (alternativ direkt aus "mqtt") und möglichst ohne, dass das noch durch viele Pipe geschoben werden muss. 2. Wie ich die Plots? Ehmmm... Graphen! ... Vor dem Nachtlauf oder direkt während dessen, mit Match auf das Erstellungsdatum/Uhrzeit der Bilder, in die Bilder prügeln kann. Cheers, Marcus
Es gibt diverse Linux Tools zur automatischen (batch) Bildbearbeitung. > ohne, dass das noch durch viele Pipe geschoben werden muss. Das ist aber genau das Prinzip wenn man es mit Linux auf die altmodische Tour machen würde. Es ist ein bisschen eine Fleißarbeit. Der Ablauf den man skripten könnte wäre grob: SQL-Query um die Daten für einen Zeitpunkt aus der Datenbank in einem ASCII-Format zu bekommen. Zum Beispiel als CSV. Dann gnuplot, plotutils, etc. (bis hin zu Octave und anderen Programmen) um eine Grafik (ein Bild) aus den Daten zu erzeugen. Dann kommt der große Moment von netpbm http://netpbm.sourceforge.net/doc/directory.html: Ausgabe (oder Konvertierung) der Grafik im PAM, PPM, oder PNM netpbm-Format. Wenn nötig Skalierung und andere Bearbeitungen (z.B. Rahmen hinzufügen) des Grafik PNM-Bildes mit entsprechenden Werkzeuge aus netpbm. Umwandlung des JPEG-Bildes in ein PNM-Bild (mit jpegtopnm). Kombinieren des Grafik-PNM mit dem Bild-PNM mit pnmpaste. Das Ergebnis-PNM aus pnmpaste müsste sich direkt statt des ursprünglichen JPEGs in ffmpeg einlesen lassen. Denn zumindest so weit ich mich erinnere unterstützt ffmpeg die netpbm-Formate.
Da bekomm ich direkt Spiralen in den Augen... Fleißarbeit ist in dem Zusammenhang tatsächlich angesagt... Das ist sicherlich auch ein Projekt, an dem noch der ein oder andere Tag vergehen wird. Vor dem ausbügeln der Feinheiten graut es mir schon jetzt... Meine Vorstellung wäre aber in etwa so: Ein Script prüft regelmäßig, ob ein neues Bild vorliegt und triggert dann die Erstellung der Graphen. Ein dynamisches Query holt sich jeweils die Daten vom beginn des aktuelle Tages bis zum jetzigen Zeitpunkt und legt den resultierenden Plot als Bild irgendwo ab. Vermutlich wäre es sinnvoll, die Dateinamen mit einer Art ID zu versehen, um das nachfolgende zusammenführen zu vereinfachen... Mglw. könnte man auch mit einer Art Arbeitsverzeichnis leben.... das ist wahrscheinlich einfacher und überschaubarer. Wenn ich dich richtig verstehe, dann kann ich die Bilder mit netpbm zusammenführen... Skalieren wird in der Tat auch notwendig sein. Die Webcam spuckt in ihrem derzeitigen Ausbau nur 800x600 (oder sowas in der Größenordnung) aus. D.h. um einen Graphen mit sinnvoller Auflösung darstellen zu können muss der ganze Quatsch vorher auch noch aufgeblasen werden. Die erzeugten PNMs kann ich dann (vermutlich) wie gewohnt durch ffmpeg jagen... klingt nach einem Plan.
Vielleicht ist es sinnvoll, in jedes Einzelbild, gleich nachdem es die Webcam irgendwo in einen Hotfolder abgelegt hat, die aktuellen Wetterdaten reinzumalen. Das dürfte sogar mit PHP zu machen sein. Dann ändert sich an dem bisherigen Verfahren zur Videoerstellung Nichts. Man kann die Bilder per Cronjob ja auch direkt aus der Kamera lutschen, dann müssen die garnicht erst als File abgelegt werden ... Letzte Idee: Kennt ffmpeg einen "Append-Mode"? D.h. jedes Bild, sobald es fertig bemalt und fornatiert vorliegt gleich an ein (somit stetig wachsendes) Video anhängen. Dann passt die gesamte Video-Erstellung jeweils in einen Cronjob-Run.
:
Bearbeitet durch User
Hab sowas mit m RasPi gemacht, Bild aus der Cam ziehen, mit Image Magick Firmenlogo, aktuelle Temp und Zeitstempel rein gepinselt, Bild hochladen auf Webspace und täglich mit ffmpeg n Video erstellt und hoch laden. Crontab, shellscript und bisschen Python, fertig ist der Lack
Ich glaube ich würde mit numpy die Daten aufbereiten, vielleicht erstmal in einen jupyter notebook, bis ich eine mir gefällige Darstellung der Wetterdaten habe, dann aus den Jupyter notebook, ein kleines Python Programm entwickeln und die Daten ins Bild einbetten, danach kannst du deine vorhandene Pipeline mit ffmpeg nutzen um das Video zu erstellen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.