Nur tagsüber Filme erstellen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Zusammen,

    ich möchte tagsüber (ungefähr ab 8 und bis 16 Uhr) die Kamera 10 Minuten Stückchen Filme von unserer futterstelle erstellen lassen. Die Filme sollen jeweils mit dem Datum als Name abgelegt werden und dies im Idealfall auf dem angesteckten Stick.

    Ich habe mir aus diversen Beiträgen einmal zusammengereimt, wie das klappen könnte. Hat der Code unten eine Chance zu funktionieren? Ich hoffe es ist alles richtig formatiert, kommt leider vom Handy.

    aufnahme.sh in meinem user Verzeichnis

    #!/bin/sh

    # 10-Sekunden-Video in 1080p (1920 x 1080)

    while :; do

    if [(date + %H) -ge 8]

    then

    if [(date + %H) -le 16]

    then

    raspivid -t 600 -o $(date + "%F-%H-%M").h264

    Sleep 3

    else

    sleep 300

    fi

    else

    sleep 300

    fi

    done

    Mit chmod +x aufnahme.sh lauffähig machen

    rc.local in /etc/ erweitern um

    sh /home/pi/aufnahme.sh

    Vielen Dank für Eure Hilfe!

  • Du willst, in der Zeit zwischen 8:00 Uhr und 16:00 Uhr, alle 10 Minuten und drei Sekunden einen Film von 10 Minuten machen?

    Es ist nach 8, aber vor 16 Uhr:

    Code
    if [(date + %H) -le 16]
    then
         raspivid -t 600 -o $(date + "%F-%H-%M").h264
         Sleep 3
    else
         sleep 300
    fi

    600 Sekunden Film, dann 3 Sekunden Pause, dann 60 Sekunden Film, ...

    Die 5 Minuten 'sleep' im 'else' werden ausgeführt, wenn es später als 16 Uhr ist.

    Der Vorschlag, den Film per Cron zu machen, kam ja schon.

    Man könnte jetzt in dem Script, das den Film macht, noch eine Abfrage einbauen, ob es auch innerhalb der Zeit zwischen Sonnenaufgang dn Untergang ist, aber das ist erst einmal egal.

    Wenn der Film nicht 'sofort' bereitstehen soll, könnte man ihn aus Fotos zusammenbauen.

    Also jede Minute ein Bild machen und die (per ffmpeg) zu einem Film zusammenschieben.

    Ober eben einen Film erstellen, doch deine Zeiten erstellen 10Minuten-Filme. Die könnte man auch per Raspivid automatisch machen, indem man einstellt, dass er 10-Minuten-Filme machen soll, die durchnummeriert werden (Parameter -W, wenn ich mich nicht irre)

    Wenn man will, könnte man die dann auch, nachdem sie fertig sind, mit dem Tagesdatum und Uhrzeit als Dateinamen, versehen.

    Computer ..... grrrrrr

  • Also die Idee war, nach 8 Uhr (dafür soll das erste if sein) und so lange es noch nicht 16 Uhr ist(dafür das zweite if) soll der 10 Minuten Filmen, dann 3 sek warten, damit auch sicher alles wieder beendet ist und dann die Schleife noch mal laufen und 10 min Filmen.

    Danach habe ich dann einen Haufen 10 Minuten Filme aus der Zeit 8-16 Uhr. Am nächsten Tag kommen dann die nächsten Filme dabei.

    Ich habe allerdings jetzt mitgenommen, dass ich das besser mit einem cronjob mache und versuche gerade durch die Dokumentation zu steigen.

  • Versteh ich das so richtig? Kann das sO vielleicht klappen?

    #M S T M W Befehl

    #----------------------------------------------------

    */10 8-16 * * * raspivid -t 597 -o $(date + "%F-%H-%M").h264 > /dev/null

    #-----------------------------------------------------------------------------------

    Also: zwischen 8-16 Uhr alle 10 Minuten einen 9:57 min Film mit dem aktuellen Datum und Uhrzeit als Titel erstellen...

  • Fast, Trag auf alle Fälle absolute Pfade ein (auf meinem Pi wäre das z.B.)

    Code
    pi@raspberrypi:~ $ which raspivid
    /usr/bin/raspivid

    und auch den kompletten Pfad, wo die Datei gespeichert werden soll. Der Befehl muss in der shell auch anstandslos funktionieren. Solange er das nicht macht, geht's auch über cron nicht.

    Deine raspivid Optionen stimmen nicht (t in ms // date). Probier mal so (/pfad/zum/verzeichnis musst Du natürlich mit Deinen Angaben austauschen):

    Code
    /usr/bin/raspivid -o /pfad/zum/verzeichnis/`/bin/date +%Y-%m-%d-%H-%M`.h264 -t 597000
  • Vielleicht könnt ihr ja noch einmal helfen. Das Filmen hat soweit geklappt, auch in die Datei auf dem Stick. Jetzt will ich das ganze in den crontab schreiben und habe es mit crontab -e rein geschrieben. Wenn ich crontab -l aufrufe steht da auch meine Zeile, aber es wird nicht gestartet. Muss man da noch etwas anderes beachten?

  • Also nach Aufruf von crontab -l kommt da:

    .. (Mehrere Zeilen Kommentare)

    # m h dom mon dow command

    */3 8-23 * * * /usr/bin/raspivid -o /media/pi/2EC0-28FE/$(/bin/date +%Y-%m-%d-%H-%M).h264 -t 59700 >/dev/null

    #

    wenn ich /usr/bin/raspivid -o /media/pi/2EC0-28FE/$(/bin/date +%Y-%m-%d-%H-%M).h264 -t 59700 einfach so in der Shell eingebe erscheint für 1 Minute das Kamerabild auf dem screen und wenn die Shell wieder da ist, liegt auf dem stick die gewünschte Datei

  • Dann mach es anders, die crontab kommt mit dem date nicht klar.

    leg ein Skript mit dem Befehl an.

    nano /home/pi/aufnahme

    Das kommt rein

    Bash
    #!/bin/bash
    /usr/bin/raspivid -o /media/pi/2EC0-28FE/$(/bin/date +%Y-%m-%d-%H-%M).h264 -t 59700

    Mit STRG-O speichern, STRG-X beendet, dann ausführbar machen:

    chmod +x /home/pi/aufnahme

    In die crontab trägst Du ein:

    */3 8-23 * * * /home/pi/aufnahme

  • Vielen Dank, es hat funktioniert. :) Das war das Problem.

    Jetzt habe ich nur noch ein anderes Problem, er startet mit filmen und beendet es nicht mehr. Da steige ich allerdings selbst noch hinter. Vielleicht hab ich ja eine null bei den ms zu viel. :)

    Edit: Es war tatsächlich eine null zu viel. :) Jetzt geht alles. Danke noch einmal für den großen Einsatz!

Jetzt mitmachen!

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