Langzeit Zeitraffer mit raspistill

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Forum
    Auf meinem Raspi ist raspistill und raspivid lauffähig. Juhuu :)
    Damit möchte ich Langzeitaufnahmen realisieren. Es soll pro Tag ein Zeitrafferfilm erstellt werden, alle 5 Sekunden eine Aufnahme. Etwa für 10 Stunden pro Tag, gibt etwa 5 Minuten Film.

    Starten würde ich das ganze per cronjob morgens. Trotzdem stellen sich mir noch mehrere Fragen.

    1. Wie mache ich die Aufnahmen am besten? Einzeln per Script und sleep? Oder per einzigem raspistill Befehl mit -tl Parameter der die ganzen 10 Stunden läuft? Oder eine Kombination die sagen wir 5 Minuten eine Aufnahme macht und dann wird das wieder per cron gestartet, damit bei einem Ausfall wenigstens 5 Min. später trotzdem wieder alles läuft?

    2. Wie komprimiere ich die Bilder in einen Stream? Die Bilder sind 1536x2048 groß und es gibt pro Tag 7200 davon. Die sollten schon kontinuierlich verarbeitet werden, sonst explodiert ja die Speicherkarte.


    3. Jede Minute soll ein aktuelles Bild für eine Webcam an einen separaten Ort kopiert werden. Wäre mit Script natürlich möglich. Ich habe schon gesucht ob es ein passenderes Programm gibt das meine Anforderungen erfüllt. Aber es ist ja ein grusliger Aufwand in Linux was zu installieren, wäre mir schon recht wenn das mit raspistill oder raspivid geht :)

    Wer Tips hat, bitte lassts mich wissen.

    Übrigens der Parameter -dt der einen Zeitstempel in den Dateinamen einfügt erzeugt bei mir das: img313181612.jpg
    Es ist März 13. 18:16:12 Uhr soweit stimmts ja. Aber wo ist die 16 fürs Jahr und warum ist der März einstellig? Damit lässt sich nur bedingt was anfangen.

  • Ich rate dir dafür lieber das Python Module "picamera" zu verwenden, was sehr mächtig und schnell ist und auch das unterstützt was du haben willst => http://picamera.readthedocs.org/en/release-1.1…lapse-sequences

    Evtl. hilft dir auch das: Python script GPIO event pushbullet notification Picam bzw weiter unten in dem Thread findest du eine aktuelle Version des Scripts...

  • Ich versuche jetzt seit 5 Minuten nach deiner Antwort picam zu installieren, ohne irgendwelche Meldungen der Art "ImportError: no module named irgendwas".
    Das ist das was mich an Linux so nervt, man kann nicht einfach mal eben was installieren ohne dass wer weiß was alles fehlt.
    Gibt es ein fertiges Image für den Raspi wo das alles schon funktionsfähig drauf ist?

  • Du musst erst das Module installieren.

    Dafür gibts 2 Möglichkeiten

    • Code
      apt-cache search python picamera

      und dann das für dein Python richtige Paket mithilfe "sudo apt-get install ..." installieren

    • Den Python eigenen Paketmanager verwenden, wobei es 2 verschiedene Gibt ein mal für Python2 und ein anderer für Python3
      Python2:

      Code
      sudo apt-get install python-pip
      sudo pip install picamera


      Python3:

      Code
      sudo apt-get install python3-pip
      sudo pip-3.2 install picamera
  • So ich hätte jetzt ein Script das mir Bilder in einem bestimmten zeitlichen Abstand aufnimmt.
    Jetzt suche ich nach einer Möglichkeit um diese Bilder "on the fly" in ein Video umzuwandeln. Alles was ich bisher finde nimmt die Bilder auf einmal und wandelt sie um.
    Ich bräuchte aber etwas das nach und nach ein soeben aufgenommenes Einzelbild an den Film anhängt. Von mir aus auch eine Gruppe von x Bildern. Aber ich kann aus Platzgründen niemals alle Einzelbilder zuerst speichern.
    Die Programme die ich finde (ffmpeg und so) erzeugen übrigens viele Ergebnisse die ich nirgends abspielen kann. Was ist da für ein Format zu empfehlen?

  • Wieso nimmst du dann nicht einfach ein Video auf anstatt einzelne Bilder?

    Also der einzige Grund der mir zu dem was du haben willst, einfällt wäre: Es werden zB zu Beginn 5 Bilder gemacht, dann läuft ein Script und fügt diese 5 Bilder zu einem "Film" zusammen. Wird dann wieder ein Foto gemacht wird dies dem vorhandenen Film angefügt und das Bild selbst gelöscht - so würde man Platz sparen.

    Sowas findest du über die Suchbegriffe: Timelapse Video


    Bei ffmpeg usw kannst du einstellen in welchem Format es verpackt werden soll..
    Ich empfehle aber stattdessen avconv zu verwenden (im Paket libav-tools enthalten). Da ich aber nicht wirklich weiß wie Dein Script nun aussieht, kann ich dir nur ein Beispiel geben was du selber für Deine Begebenheiten anpassen müsstest:

    Code
    avconv -r 10 -i image_%04d.jpg  -r 10 -vcodec libx264 -crf 20 -g 15 timelapse.mp4

    Beachtet alle Dateien im Format image_0001.jpg bis image_9999.jpg also 4 digits mit führender 0 nach _.
    Oder:

    Code
    avconv -r 30 -i image_%04d.jpg -r 30 -vcodec libx264 -g 15 -qscale 5 timelapse.mp4


    Dabei wird die Auflösung der Bilder verwendet. Man kann das aber auch zuschneiden und selber definieren:

    Code
    avconv -r 10 -i image_%04d.jpg \
           -r 10 -vcodec libx264 -crf 20 -g 15 \
           -vf crop=2592:1458,scale=1280:720 \
           timelapse.mp4

    (diesmal in die Abschnitte unterteilt die zusammen gehören)
    Erzeugt ein Video mit einer Auflösung von 1280*720.

    Spoiler anzeigen


    -r setzt die fps. Es steht doppelt dort um avconv anzuweisen keine Frames auszulassen, auch wenn sie gleich aussehen.
    -i Die Bilderserie die zusammengesetzt werden soll (hier video_0001.jpg , video_0002.jpg usw.)
    -vcodec für den zu verwendenden Videocodec. (Verfügbare Codecs können mit avconv -codecs angezeigt werden)
    -g gop Einstellung, hälfte der fps funktioniert meist gut.
    -qscale Qualitätseinstellung (vom 1 bis 31, 1 excellent, 31 am schlechtesten)

    Eine andere Möglichkeit, womit ich aber keine Erfahrung habe, wäre:

    Code
    ls *.jpg > pics.txt
    mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=1920:1080 -o timelapse.avi -mf type=jpeg:fps=24 mf://@pics.txt

    Anstatt die Bilddateien mit Digits benennen zu lassen wäre aber ein tatsächlicher Zeitstempel (timestamp) besser, also das 2.Code Beispiel vom oben genannten picamera Beispiel-Code (Beitrag#2)

  • Bei Videoaufnahme müsste ich angeben können dass nur alle 5 Sekunden ein Bild gemacht werden soll. Wäre natürlich das einfachste aber die Optionen für die Programme erschlagen einen :) Da kämpfe ich mich gerade durch aber bisher ohne Erfolg.

    Gestern habe ich es geschafft picamera zu installieren. Heute ist davon nichts mehr übrig, wie gibts denn sowas? picamera ist nicht mehr installiert. Auch mein Beispiel Pythonscript ist weg. Spinn ich??

  • Hast du vielleicht ein Problem mit der SD Karte? Oder du hast das Paket für python3 installiert aber aus Versehen python2 gestartet? Oder du bist als ein anderer Benutzer angemeldet als gestern?

    Wenn du den Python Paketmanager installiert hast kannst du dir wie folgt ganz einfach anzeigen lassen welche Pakete du darüber installiert hast:

    Python
    python3 -c "from pprint import pprint; import pip; pprint( pip.get_installed_distributions() )"

    Bei mir kommt dann zum Beispiel:

    Python
    root@RoPi:~# python3 -c "from pprint import pprint; import pip; pprint( pip.get_installed_distributions() )" 
    [bottle 0.12.9 (/usr/local/lib/python3.5/dist-packages),
     psutil 4.0.0 (/usr/local/lib/python3.5/dist-packages),
     ws4py 0.3.4 (/usr/local/lib/python3.5/dist-packages),
     picamera 1.10 (/usr/local/lib/python3.5/dist-packages)]
    root@RoPi:~#
  • pi@raspberrypi ~ $ python3 -c "from pprint import pprint; import pip; pprint( pip.get_installed_distributions() )"
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    ImportError: No module named pip

    pi@raspberrypi ~ $ python -c "from pprint import pprint; import pip; pprint( pip.get_installed_distributions() )"
    [wsgiref 0.1.2 (/usr/lib/python2.7),
    argparse 1.2.1 (/usr/lib/python2.7),
    picamera 1.10 (/usr/local/lib/python2.7/dist-packages),
    pygame 1.9.1release (/usr/lib/python2.7/dist-packages),
    distribute 0.6.24dev-r0 (/usr/lib/python2.7/dist-packages),
    numpy 1.6.2 (/usr/lib/pymodules/python2.7)]

    Ich hab python2, habe gestern (und heute) auch deinen Code für Python 2 ausgeführt.
    Automatisch zusammengefügt:
    Ja ich glaube die Karte ist hinüber. Mein Script ist schon wieder weg, dafür sind Dateien da die ich vorher bereits gelöscht habe.

    Einmal editiert, zuletzt von Obstsalat (15. März 2016 um 21:15)

Jetzt mitmachen!

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