Automatización de grabación de video en arranque de raspberry pi3.

He escrito un código de Python que contiene un código abierto para jugar con mi cámara web. Lo he adjuntado a raspi 3. Quiero que en el inicio (arranque), comience a grabar el video automáticamente. Estoy usando crontab para esto.

Mi código de Python:

import cv if __name__ == "__main__": # find the webcam capture = cv2.VideoCapture(0) capture1 = capture # video recorder fourcc = cv2.cv.CV_FOURCC(*'XVID') #cv2.VideoWriter_fourcc() does not exist videoOut = cv2.VideoWriter('out1.avi', fourcc, 10.0, (640, 480)) videoOut1 = cv2.VideoWriter('out2.avi', fourcc, 10.0, (640, 480)) # record video while (capture.isOpened() and capture1.isOpened()): ret, frame = capture.read() ret1, frame1 = capture1.read() if ret: videoOut.write(frame) cv2.imshow('Video Stream', frame) else: break if ret1: frame1 = cv2.flip(frame1,1) videoOut1.write(frame1) cv2.imshow('Video Stream1', frame1) else: break # Tiny Pause key = cv2.waitKey(1) capture1.release() videoOut1.release() capture.release() videoOut.release() cv2.destroyAllWindows() 

Luego hice un guión de bash que se parece a esto,

 cd / cd absolute path to my python file directory sudo python cam22.py cd / 

cam22.py es el nombre de mi archivo python

Luego usé contrab para ejecutar este script de bash en tiempo de ejecución escribiendo

     @reboot path to my bash file 

    Después de reiniciar, se generan dos archivos avi en el mismo directorio, pero el video no se graba, la cámara web no se ejecuta, lo cual, sin embargo, funciona perfectamente cuando yo mismo ejecuto este archivo bash para ejecutar el archivo python.

    Como se sugiere en los comentarios, he creado un archivo de registro, muestra El registro de errores muestra (Video Stream: 542): Gtk-Warning **: no se puede abrir la pantalla:

    Según lo sugerido por Mark Setchell en los comentarios, funcionó correctamente después de eliminar imshow (), waitkey ().

    Si se generan dos archivos, eso significa que crontab funciona bien. también significa que el video no se genera debido a la ortografía incorrecta del formato .avi, cámbielo a .AVI e inténtelo una vez

     fourcc = cv2.cv.CV_FOURCC('D', 'I', 'V', 'X') videoOut = cv2.VideoWriter('output1.AVI', fourcc, 20, (640, 480), 1) videoOut2 = cv2.VideoWriter('output2.AVI', fourcc, 20, (640, 480), 1)