RaspBerry Bild und Video hintereinander.

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Hallo,

ich wollte mit meiner, am RaspBerry angeschlossenen CAM ein Bild und danach ein Video aufnehmen.
Leider funktioniert entweder nur ein Bild erstellen, oder ein Video aufnehmen.
(Natürlich abhänig davon, welche Zeile ich auskommentiere.

Sicher habe ich irgend einen Befehl vergessen, finde aber nicht, welchen.

Code: Alles auswählen

#!/usr/bin/env python
#coding: utf-8
from __future__ import absolute_import, division, print_function
import time
import picamera
PiCam=picamera.PiCamera()
PiCam.capture("/mnt/netz/Foto.jpg")
PiCam.close()
time.sleep(5)
PiCam.framerate = 10
PiCam.start_recording("/mnt/netz/Test1.H264")
time.sleep(120)
PiCam.stop_recording()
 
Danke LotharK
BlackJack

@LotharK: `close()` ist üblicherweise der Name einer Methode nach deren Aufruf das Objekt nicht mehr benutzbar ist. Du müsstest danach also ein neues `PyCamera`-Objekt erstellen oder das schliessen erst ganz am Ende durchführen.
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Hi,

danke für die Antwort,

ich löse es jetzt mit

os.system(raspistill -o Bild.jpg)
Das funktioniert erst mal, werde mir deinen Tipp aber mal durchdenken.

Ciao LotharK
lackschuh
User
Beiträge: 281
Registriert: Dienstag 8. Mai 2012, 13:40

Schreib halt zwei Funktionen:

Code: Alles auswählen

def bild_aufnehmen():
    pass


def video_aufnehmen():
    pass


def main():
    bild_aufnehmen()
    video_aufnehmen()


if __name__ == '__main__':
    main()
http://picamera.readthedocs.org/en/rele ... -to-a-file
http://picamera.readthedocs.org/en/rele ... -to-a-file
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Danke für den Tipp
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Hi,
So richtig bin ich mit Python noch nicht vertraut.

Ich dachte, die Umsetzung Deines Tipps wäre:

Code: Alles auswählen

#!/usr/bin/env python

from __future__ import absolute_import, division, print_function

import picamera
Import time

def video_aufnehmen():
     PiVid=picamera.PiCamera()
     PiVid.framerate = 15
     PiVid.start_recording("/home/pi/Video.H264")
     time.sleep(60)
     PiVid.stop_recording()
     pass


def bild_aufnehmen():
     PiCam=picamera.PiCamera()
     PiCam.capture("/home/pi/Test.jpg")
     pass

def main():
    bild_aufnehmen()
    video_aufnehmen()
    print ("fertig")
    
if __name__== '__main__':
     main()


Leider läuft der Code bis zum print durch, es wird aber kein Bild und kein Video erzeugt.

Auch Fehler kommt keiner. Sicher rufe ich die SUB' nicht richtig auf, oder?

MfG LotharK
Zuletzt geändert von LotharK am Dienstag 4. August 2015, 13:41, insgesamt 1-mal geändert.
BlackJack

@LotharK: Du musst die beiden Funktionen in der `main()` auch *aufrufen*, nur ihre Namen hinzuschreiben hat keinen Effekt.
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Mist, jetzt sehe ich es - danke
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Hi,

nachdem ich beide SUBs zusammen aufrufe () und noch time importiere, kommt der gleiche Fehler,
Kommentiere ich eine der 2 Subs aus, läuft es.

Hm, was mache ich denn nun noch falsch?

Ciao LotharK
garreth
User
Beiträge: 41
Registriert: Donnerstag 23. Oktober 2014, 12:04

Hallo,

das "import" bei time hast du groß geschrieben. Das "pass" hat am Ende deiner Funktionen nichts zu suchen.

Ich habe dir mal hier - ungetestet(!!!) - aus der offiziellen Dokumentation das Script in Python 3 geschrieben.

Code: Alles auswählen

#!/usr/bin/env python3


import picamera
import time


def record_video():
    # Code from documentation
    # https://picamera.readthedocs.org/en/release-1.10/recipes1.html#recording-video-to-a-file
    with picamera.PiCamera() as camera:
        camera.resolution = (640, 480)
        camera.start_recording('/home/pi/Video.H264')
        camera.wait_recording(60)
        camera.stop_recording()


def take_picture():
    # Code from documentation
    # https://picamera.readthedocs.org/en/release-1.10/recipes1.html#capturing-to-a-file
    with picamera.PiCamera() as camera:
        camera.resolution = (1024, 768)
        camera.start_preview()
        # Camera warm-up time
        time.sleep(2)
        camera.capture('/home/pi/Test.jpg')


def main():
    take_picture()
    record_video()
    print("Finished")


if __name__ == '__main__':
    main()
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Hallo und vielen Dank für die Mühe.

Ich werde es sogleich testen.

Natürlich hatte ich das Import im Script klein geschrieben. Ich hatte hier meinen Thread nachträglich geändert und es vermasselt.

Das pass kam aus dem Tipp und ich habe mir erst jetzt die Mühe gemacht, nachzulesen, was pass tut. (Asche auf mein Haupt)

Ich habe bis jetzt noch nicht verstanden, wann ich Python3 und wann Python2 nehmen sollte.

Gruß
BlackJack

@LotharK: Wann Python 2 und wann Python 3 ist doch im Grunde ganz einfach: Achte darauf das alle Abhängigkeiten die Du brauchst für die Version verfügbar sind, und nimm dann die Version die Du möchtest.
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Danke für die Antwort.

Oh je. Da werde ich wohl noch bissel lernen müssen. Bis jetzt habe ich keine Ahnung, was Linux da mit mir macht.
Woher ich Infos über Abhängigkeiten bekomme, weiß ich z.B. gar nicht, werde mich aber mal damit auseinandersetzen.

Ist halt doch vieles anders als bei Windows. Ich hatte 93 zwar mal Unix, aber da ist nichts hängen geblieben. Linux ist sicher auch noch in vielem anders.
Was ich so mit Python gemacht hatte, habe ich bis alles aus Büchern. Wenn ich dann davon hier was poste, ist es dann meist Schrott.

Danke und Ciao LotharK
BlackJack

@LotharK: Abhängigkeiten: Bibliotheken die Du brauchst um das zu schreiben was Du schreiben möchtest. Das hat also erst einmal nichts direkt mit Linux oder Windows zu tun, die Frage würde sich unter Windows genau so stellen: Gibt es alles was ich brauche um Aufgabe X zu lösen für Python Y.
LotharK
User
Beiträge: 51
Registriert: Sonntag 22. März 2015, 10:02

Danke, funktioniert perfekt
Antworten