Nota
Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook. ¡Explora más a fondo Raspberry Pi, Arduino y ESP32 con otros entusiastas!
¿Por qué unirse?
Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Obtén acceso anticipado a anuncios de nuevos productos y vistas previas.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy mismo.
Grabar Video
Este ejemplo te guiará sobre cómo utilizar la función de grabación.
Ejecutar el Código
cd ~/picrawler/examples
sudo python3 record_video.py
Después de ejecutar el código, puedes ingresar http://<tu IP>:9000/mjpg en el navegador para ver la pantalla de video, por ejemplo: http://192.168.18.113:9000/mjpg.
La grabación se puede detener o iniciar presionando teclas en el teclado.
Pulsa
qpara comenzar la grabación, pausar/continuar, yepara detener la grabación o guardar.Si deseas salir del programa, presiona
Ctrl+C.
Código
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) # esperar a que inicie
print(MANUAL)
while True:
# leer teclado
key = readchar.readkey()
key = key.lower()
# iniciar/pausar
if key == 'q':
key = None
if rec_flag == 'stop':
rec_flag = 'start'
# establecer nombre
vname = strftime("%Y-%m-%d-%H.%M.%S", localtime())
Vilib.rec_video_set["name"] = vname
# iniciar grabación
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')
# detener
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')
# salir
elif key == readchar.key.CTRL_C:
Vilib.camera_close()
print('\nquit')
break
sleep(0.1)
if __name__ == "__main__":
main()
¿Cómo funciona?
Las funciones relacionadas con la grabación incluyen las siguientes:
Vilib.rec_video_run(video_name): Inicia el hilo para grabar el video.video_namees el nombre del archivo de video, debe ser una cadena de texto.Vilib.rec_video_start(): Inicia o continúa la grabación del video.Vilib.rec_video_pause(): Pausa la grabación.Vilib.rec_video_stop(): Detiene la grabación.
Vilib.rec_video_set["path"] = "~/video/test/" establece la ubicación de almacenamiento de los archivos de video.