Note
Bonjour, bienvenue dans la communauté des passionnés de Raspberry Pi, Arduino et ESP32 sur Facebook ! Explorez plus en profondeur l’univers de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes post-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre et partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Bénéficiez d’un accès anticipé aux annonces de nouveaux produits et d’aperçus exclusifs.
Réductions spéciales : Profitez de remises exclusives sur nos produits les plus récents.
Promotions festives et concours : Participez à des concours et à des promotions spéciales.
👉 Prêt à explorer et à créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !
Enregistrement Vidéo
Cet exemple vous guide sur la façon d’utiliser la fonction d’enregistrement vidéo.
Exécuter le Code
cd ~/picrawler/examples
sudo python3 record_video.py
Une fois le code exécuté, vous pouvez entrer http://<votre IP>:9000/mjpg dans le navigateur pour afficher l’écran vidéo, par exemple : http://192.168.18.113:9000/mjpg
L’enregistrement peut être démarré ou arrêté en appuyant sur les touches du clavier.
Appuyez sur
qpour commencer l’enregistrement ou mettre en pause/reprendre,epour arrêter l’enregistrement ou enregistrer.Pour quitter le programme, appuyez sur
Ctrl+C.
Code
from time import sleep,strftime,localtime
from vilib import Vilib
import readchar
from os import getlogin
USERNAME = getlogin()
VIDEO_PATH = f"/home/{USERNAME}/Videos/"
MANUAL = '''
Press keys on keyboard to control recording:
Q: record/pause/continue
E: stop
Ctrl^C: Quit
'''
def print_overwrite(msg, end='', flush=True):
print('\r\033[2K', end='',flush=True)
print(msg, end=end, flush=True)
def main():
rec_flag = 'stop' # start, pause, stop
vname = None
Vilib.rec_video_set["path"] = VIDEO_PATH
Vilib.camera_start(vflip=False,hflip=False)
Vilib.display(local=True,web=True)
sleep(0.8) # attendre le démarrage
print(MANUAL)
while True:
# lire le clavier
key = readchar.readkey()
key = key.lower()
# démarrer, mettre en pause
if key == 'q':
key = None
if rec_flag == 'stop':
rec_flag = 'start'
# définir le nom
vname = strftime("%Y-%m-%d-%H.%M.%S", localtime())
Vilib.rec_video_set["name"] = vname
# démarrer l'enregistrement
Vilib.rec_video_run()
Vilib.rec_video_start()
print_overwrite('rec start ...')
elif rec_flag == 'start':
rec_flag = 'pause'
Vilib.rec_video_pause()
print_overwrite('pause')
elif rec_flag == 'pause':
rec_flag = 'start'
Vilib.rec_video_start()
print_overwrite('continue')
# arrêter
elif key == 'e' and rec_flag != 'stop':
key = None
rec_flag = 'stop'
Vilib.rec_video_stop()
print_overwrite("The video saved as %s%s.avi"%(Vilib.rec_video_set["path"],vname),end='\n')
# quitter
elif key == readchar.key.CTRL_C:
Vilib.camera_close()
print('\nquit')
break
sleep(0.1)
if __name__ == "__main__":
main()
Comment ça fonctionne ?
Les fonctions liées à l’enregistrement incluent :
Vilib.rec_video_run(video_name): Lance le thread pour enregistrer la vidéo.video_nameest le nom du fichier vidéo, il doit s’agir d’une chaîne de caractères.Vilib.rec_video_start(): Démarre ou reprend l’enregistrement vidéo.Vilib.rec_video_pause(): Met l’enregistrement en pause.Vilib.rec_video_stop(): Arrête l’enregistrement.
Vilib.rec_video_set["path"] = "~/video/test/" définit le répertoire de stockage des fichiers vidéo.