Je voudrais savoir comment on fait pour enregistrer une vidéo dans un répertoire bien précis et non dans le répertoire Downloads. Voici mon code, où est-ce que je pourrais insérez la commande pour le faire ?
#!/usr/bin/env python
-- coding:Utf-8 --
import time
import picamera
import RPi.GPIO as GPIO
import os
Par contre j’ai essayé plusieurs variantes de ce code mais rien ne marche… Il existerait pas un autre moyen de le faire sans utiliser une commande os ? Parce quand je veux prendre une vidéo avec ça il m’affiche plein de messages d’erreurs, alors qu’avec mon ancien code, il n’y avait aucun soucis pour prendre la vidéo, juste je ne pouvais pas choisir la destination de la vidéo
J’ai tapé une idée de code.
Faut vérifier l’usage de Raspivid (je n’utilise pas)
et je ne suis pas codeur.
Je n’ai même pas appris le python.
Tu as vérifié le code sous Geany (genre pb d’indentation ?)
Le script de photomaton que j’ai largement modifié utilise une commande os.system sans souci.
Tu as forcément une solution sans os.system
Tu pourrais définir le chemin dans une #def ou l’écrire dans le script ou exécuter ton code dans le dossier où tu veux obtenir les vidéos (je pense).
Il n’y a aucun problème d’indentation je suis assez maniaque là-dessus.
Le problème avec le fait de juste faire tourner mon code dans le dossier destination est que je vais avoir pour chaque vidéo une version en .h264 et une autre en .mp4, donc j’aurais voulu séparer les fichiers directement dans mon code pour qu’ensuite en allant récupérer les vidéos je n’aie qu’à prendre les formats mp4 et supprimer es formats h264 car inutiles après.
Merci beaucoup ce serait top.
Je viens de retravailler le code et virer plein d’erreurs (put-être liées au passage sur le forum).
pi@raspberrypi:~ $ python3 /home/pi/test/script.py
Presser Ctrl+C pour arrêter le programme
Le programme est opérationnel
Rec…
Traceback (most recent call last):
File "/home/pi/test/script.py", line 26, in <module>
camera.start_recording(NomVideo+".h264")
NameError: name 'NomVideo' is not defined
raspivid -w 640 -h 480 -o video.mp4 -t 1000 -fps 24
ne donne rien raspivid -w 640 -h 480 -o video.h264 -t 1000 -fps 24
donne une vidéo
On a donc la réponse objective.
pi@raspberrypi:~/test $ python3 /home/pi/test/script.py
Presser Ctrl+C pour arrêter le programme
Le programme est opérationnel
Rec…
Vidéo terminée
Nombre de vidéos réalisées depuis la mise en route du système : 1
Rec…
Vidéo terminée
Nombre de vidéos réalisées depuis la mise en route du système : 2
Rec…
Vidéo terminée
Nombre de vidéos réalisées depuis la mise en route du système : 3
Rec…
Vidéo terminée
Nombre de vidéos réalisées depuis la mise en route du système : 4
Rec…
^CProgramme interrompu
Mais je n’ai aucune vidéo
(J’ai viré la partie du code qui transcode.)
#!/usr/bin/python3
# -*- coding: utf-8 -*
import time
import picamera
import RPi.GPIO as GPIO
import os
camera = picamera.PiCamera()
camera.resolution = (1920,1080)
#camera.vflip = True
GPIO.setmode(GPIO.BOARD)
Capteur = 26
DureeVideo = 30
NombreVideos = 0
GPIO.setup(Capteur,GPIO.IN)
try:
print('Presser Ctrl+C pour arrêter le programme')
time.sleep(10)
print('Le programme est opérationnel')
while 1:
if (GPIO.input(Capteur) == 1):
NomVideo = "Video{}".format(NombreVideos) + time.strftime("%d-%m-%Y%Hh%Mm%Ss")
#NomVideo = "test-video"
print("Rec…")
camera.start_recording('NomVideo'+'.h264')
time.sleep(DureeVideo)
camera.stop_recording()
print("Vidéo terminée")
NombreVideos += 1
#Commande = "MP4Box -add ~/Desktop/projet1A/"+ NomVideo + ".h264 " + "~/Desktop/projet1A/" + NomVideo + ".mp4"
#os.system(Commande)
print("Nombre de vidéos réalisées depuis la mise en route du système : {}".format(NombreVideos))
time.sleep(3)
except KeyboardInterrupt :
print("Programme interrompu")
GPIO.cleanup()
Il ne faut pas mettre NomVideo entre guillemets dans le start_recording, car NomVideo est déjà de type str, et en la mettant juste comme ça suivi de .h264, le nom sera bien et sera surtout différent à chaque fois, parce que là le programme prend plusieurs fois une vidéo avec le même nom