Autostart Videoaufnahme + Wasserzeichen

  • Hallo Zusammen,

    ich bräuchte mal euren Rat.

    Und zwar habe ich mir einen Raspberry Pi 4 und eine RaspCam 2 zugelegt. Die Aufnahmen mit Raspivid funktionieren gut.

    Nun möchte ich den Pi so konfigurieren, dass direkt nach dem Bootvorgang automatisch eine Videoaufnahme startet. Diese soll dann eine bestimmte Zeit aufnehmen und anschließend die Videodatei auf der SD-Karte ablegen.

    Den Raspivid-Befehl in crontab zu schreiben kriege ich leider nicht hin.

    Auch es mit einem rc.local Script zu realisieren hat bisher nicht geklappt.

    Oder sollte ich lieber auf ein Programm wie bsp. Motion zurückgreifen?

    Bestenfalls soll noch ein Wasserzeichen oder ein eigener Text im Video dauerhaft angezeigt werden.

    Bin froh über jede Hilfe! :danke_ATDE:

    Bitte habt Nachsicht, ich bin hier absoluter Anfänger und versuche mich reinzuarbeiten. Aber auch wenn es viele allgemeine Tutorials gibt, tu ich mich momentan noch sehr schwer.:rolleyes:

    Beste Grüße!

    • Offizieller Beitrag

    Hallo gragtoni435!

    Erstmal 3,5 Fragen. Wenn Du die Aufnahme in der Konsole startest, dann funktioniert es oder? Welchen Befehl verwendest Du dafür? Benutzt Du Raspbian(?) mit oder ohne Desktop?

    Bei Wasserzeichen o.ä. kann ich leider z.Zt. nicht helfen.

    • Offizieller Beitrag

    raspivid -t 10000 -o video.h264

    Wenn Du absolute Pfade verwendest, dann sollte es auch mit dem Autostart funktionieren. (Zur Not auch per Crontab bzw. rc.local) z.B.

    Code
    /usr/bin/raspivid -t 10000 -o /home/pi/video.h264

    Ich würde Dir allerdings eine *.desktop-Datei für den Autostart empfehlen. ;)


    Im Terminal erstellst Du die Datei camrecord.desktop:

    Code
    nano /home/pi/.config/autostart/camrecord.desktop

    Falls das Verzeichnis autostart nicht existiert, dann muss das halt erstellt werden.

    Mit folgendem Inhalt:

    Code
    [Desktop Entry]
    Type=Application
    Name=camrecord
    Comment=camrecord
    Exec=/usr/bin/raspivid -t 10000 -o /home/pi/video.h264
    Terminal=false

    dann speichern mit Strg+o (der Buchstabe o nicht die Null) und nano beenden mit Strg+x.

    Dann zum Test vom Desktop abmelden und als pi wieder anmelden.

    Freihändig und ungetestet!

  • Ein "Wasserzeichen" ist für mich normalerweise nicht sichtbar und dient zur genauen Identifikation des Urhebers/Absenders.

    Wenn Du aber eine ständige Einblenung eines Textes, wie z.B. des Senders beim TV, wünscht, kannst Du das mit einer "Marqueeanzeige", einem "Logo (Bild)", einem "Kate-Overlay", u.A. in den Ausgabe-Stream mischen. Aufzählung nicht vollständig. Bei VLC sind die drei genannten Möglichkeiten dabei.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • hyle

    Herzlichen Dank! Das hat alles gut geklappt.

    Hierzu aber eine weitere Fragen.

    Der Befehl wird ja nun erst bei [Desktop Entry] ausgeführt.

    Kann ich hierfür auch einen anderen Zeitpunkt wählen? Z.B. der Zeitpunkt des Boots?

    Sprich, damit der Raspberry die Aufnahme direkt nach dem Booten startet und nicht erst wenn ich mich in meinem Fall per Remote-Verbindung eingeloggt habe?

    • Offizieller Beitrag

    Der Befehl müsste eigentlich dann ausgeführt werden, wenn der Desktop bereit ist, also der Bootvorgang abgeschlossen ist. Per Remoteverbindung logst Du Dich doch in einen laufenden Desktop ein, soweit Du den Standard VNC verwendest. Oder hast Du (z.B. in raspi-config) nicht Desktop Autologin eingestellt oder andere Remotesoftware verwendet?

  • Nun dachte ich, das wäre das Problem.

    Aber nachdem ich die Einstellungen im Raspi-Config geändert habe entsprechend diesem Link: https://maker-tutorials.com/raspberry-pi-b…nmelden-booten/

    Aber egal ob ich auf B2 oder B4 umstelle, es ist weiterhin so, dass die Aufnahme erst gestartet wird, wenn ich mit der Remote-Desktop Verbindung von Windows eine Verbindung zum Raspberry Pi aufgebaut habe.

    Anschließend habe ich das autologin.conf verändert, konnte dies aber nicht abspeichern, da es nicht schreibend geöffnet werden konnte..

  • hyle

    Nun habe ich heute nochmal etwas dran rumprobiert.

    Wenn ich meinen Monitor direkt an den Raspberry Pi anschließe, dann sehe ich nach dem Boot live die Kameraaufnahme, welches gerade für die angegebene Zeit aufnimmt. Da war ich immerhin mal kurz ziemlich happy und meinte es funktioniert alles.

    Aber wenn ich mich nun per Remote-Verbindung von meinem Windows-PC auf den Raspberry schalte, dann startet die Aufnahme neu und überspeichert damit die alte.

    Sprich es funktioniert eigentlich wie gewollt. Nur bei einer Remote-Verbindung wird die Datei sofort überschrieben und der ganze Vorgang startet neu.

    Mein nächster Gedanke war, dass ich nach der Aufnahmezeit des Raspberry einfach ausschalte & die SD-Karte in meinen Windows-PC steck um die Videodatei runterzuziehen. Das ist aber leider wohl nicht möglich so einfach.

    Einfach einen USB-Stick anschließen und die Video-Datei dort abspeichern hat auch nicht geklappt. Muss man hierfür ein paar Befehle beachten oder den USB-Stick vorher speziell konfigurieren?

    Und:

    Gibt es eine Möglichkeit es in der *desktop-Datei so zu schreiben, dass immer eine neue Videodatei erstellt wird und die alte davon unberührt bleibt?

    Dass der Name der Videodatei beispielsweise einfach hochgezählt wird..?

    Beste Grüße!

    • Offizieller Beitrag

    Bin mir nicht ganz sicher, ob das in der *.desktop-Datei funktioniert, aber versuchs mal mit der Exec Zeile so:

    Code
    Exec=/usr/bin/raspivid -t 10000 -o /home/pi/video$(date "+%Y.%m.%d-%H.%M.%S").h264
    • Offizieller Beitrag

    Ich habe mal ein bissel getestet, zwar nur mit touch statt mit raspivid, aber... Vergiss was ich in #11 schrieb, das wird imho so nichts ohne einen Umweg über ein Skript.

    Bash: video.sh
    #!/bin/bash
    
    dateiname=/home/pi/video_$(date "+%Y_%m_%d-%H_%M_%S").h264
    
    /usr/bin/raspivid -t 10000 -o $dateiname
    Code: camrecord.desktop
    [Desktop Entry]
    Type=Application
    Name=camrecord
    Comment=camrecord
    Exec=lxterminal -e /bin/bash /home/pi/video.sh
    Terminal=false

    Falls Du die video.sh ausführbar gemacht machst, dann kannst Du /bin/bash in der camrecord.desktop auch weglassen. Ich hoffe ich habe jetzt keinen Kopierfehler gemacht.

  • Ich habe mal ein bissel getestet, zwar nur mit touch statt mit raspivid, aber... Vergiss was ich in #11 schrieb, das wird imho so nichts ohne einen Umweg über ein Skript.

    Bash: video.sh
    #!/bin/bash
    
    dateiname=/home/pi/video_$(date "+%Y_%m_%d-%H_%M_%S").h264
    
    /usr/bin/raspivid -t 10000 -o $dateiname
    Code: camrecord.desktop
    [Desktop Entry]
    Type=Application
    Name=camrecord
    Comment=camrecord
    Exec=lxterminal -e /bin/bash /home/pi/video.sh
    Terminal=false

    Falls Du die video.sh ausführbar gemacht machst, dann kannst Du /bin/bash in der camrecord.desktop auch weglassen. Ich hoffe ich habe jetzt keinen Kopierfehler gemacht.

    hyle Vielen Dank! Das läuft alles top!

    Eine Konvertierung zu MP4 hat auch ziemlich schnell geklappt.

    Nun soll eben noch ein Text in das Video, welcher dauerhaft in einer Ecke oder unten-mittig angezeigt wird.

    Uhrzeit und Datum wären Schritt 1 als Anzeige im Video.

    Zusätzlich sollen denn noch benutzerdefinierte Texte angezeigt werden. Bestenfalls die sich während dem Video auch ändern können

    Ist das möglich so eine "dynamische" Anzeige einzubauen?

    Oder muss man das nachträglich machen, also wenn das Video bereits abgespeichert ist.

    Beste Grüße und vielen Dank im Voraus!

    Edit: Mir wurde zur Datenabfrage das Programm "Node-Red" in Zusammenarbeit mit einen OPC UA-Server empfohlen. Diese Daten sollen dann als Text im Video angezeigt werden.

    Hat hier jemand dazu Erfahrungen?

  • Zusätzlich sollen denn noch benutzerdefinierte Texte angezeigt werden. Bestenfalls die sich während dem Video auch ändern können

    Ist das möglich so eine "dynamische" Anzeige einzubauen?

    Was du meinst sind Untertitel. Du kannst sie direkt im Video Speichern, dass sie immer vorhanden sind oder als Option zum Einblenden. Es gibt auch noch die Version, die Daten extern in einer sub-Datei zu haben.

    Glaube ersetzt kein Wissen

  • Und wie füge ich die ein? Oder aktiviere diese, bzw konfiguriere diese so wie ich es brauch?

    Ich verstehe deine Fragen nicht? Zu welcher Möglichkeit hast du dich entschlossen? Hast du Google schon bemüht? Mit welchem Ergebnis? Welche Software möchtest du verwenden?

    Glaube ersetzt kein Wissen

  • Anders gesagt: es gibt ja mehrere Möglichkeiten solche Untertitel einzufügen. VLC oder auch ffmpeg. wobei bei VLC ja eher vorgefertigte Untertitel eingefügt werden können, aber ich habe sich ständig änderte Daten, welche im Video angezeigt werden sollen.
    Welches Programm würde sich empfehlen um eben ständig änderte Daten im Video einzufügen ?

    Beste Grüße

  • Welches Programm würde sich empfehlen um eben ständig änderte Daten

    Jeder beliebige Editor.

    Nein Spass beiseite.

    Dateien mit der Endung .srt beinhalten reinen Text. Auf Ubuntuusers wird erklärt welche Format es gibt. Dort wird auch erklärt wie man Untertitel erstellt.

    Oder meintest du ein Live-Video?

    Was ist aus dem Wasserzeichen geworden?


    Es gibt, wie bereits geschrieben, auch die Möglichkeit den Text im Video zu speichern. Das ist die Ausgabe von ffprobe eines Videos, das den Subtitel integriert hat Stream #0:3(eng): Subtitle: subrip.

    Glaube ersetzt kein Wissen

    3 Mal editiert, zuletzt von bombom (29. November 2019 um 11:23)

  • Vielen Dank schonmal ! :)

    Ich hatte zuerst nur an ein Wasserzeichen (o.ä.) gedacht, um die Positionsdaten im Video dann angezeigt zu bekommen.

    Ich habe vor mit dem Programm Node-Red ständig die Positionsdaten aus einer Siemens S7 abzufragen. Und diese Positionsdaten sollen dann in dem Video, welches aufgezeichnet wird, dauerhaft angezeigt werden, damit man immer nachvollziehen kann, wo man sich gerade befindet.

    Also hierbei soll es kein Live-Video oder Stream sein, sondern das Video wird automatisch aufgenommen und anschließend kann man es sich die Video-Datei dann anschauen.

    Falls Unregelmäßigkeiten beim Durchschauen dann festgestellt werden, soll man anhand der Daten eben sofort sehen, wo genau es gerade ist.

    Beste Grüße

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!