Не понимаю
-
На предыдущий вопрос мне никто так и не ответил. Но да ладно. Хочу реализовать автомобильный видеорегистратор и просто фото.
Вопрос вот в чём. Если я запускаю файл вручную всё работает отлично и все видеофайлы заданного отрезка времени. НО!!! Если в автозапуске, то фото работает хорошо, а видео создаёт файлы, но пишет в каждом обычно по 1-2 сек иногда больше. Почему такая работа при автозапуске?
Код:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import picamera from time import sleep import datetime foto = 0 video = 1 t = 300 GPIO.setmode(GPIO.BOARD) GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_UP) GPIO.setup(33, GPIO.IN, pull_up_down = GPIO.PUD_UP) try: while True: while GPIO.input(33) == foto: if GPIO.input(18) == 0: camera = picamera.PiCamera(sensor_mode=1, framerate=30) camera.rotation = 180 camera.ISO = 0 #camera.start_preview() for i, filename in enumerate( camera.capture_continuous('/home/pi/Pictures/img_{timestamp:%d-%m-%Y-%H-%M-%s}.jpg', resize=(3280,2464))): sleep(0.2) if i == 3: break #camera.stop_preview() camera.close() while GPIO.input(33) == video: dvrname = datetime.datetime.now().strftime("%d.%m.%y_%H.%M.%S") with picamera.PiCamera(sensor_mode=1, framerate=30) as camera: camera.resolution = (1920, 1080) camera.rotation = 180 camera.ISO = 0 camera.start_preview() start = datetime.datetime.now() camera.start_recording('/home/pi/Videos/' + dvrname + '.h264') while GPIO.input(33) == video: end = datetime.datetime.now() delta = end - start seconds = delta.seconds if seconds >= t: camera.stop_recording() dvrname = datetime.datetime.now().strftime("%d.%m.%y_%H.%M.%S") camera.start_recording('/home/pi/Videos/' + dvrname + '.h264') start = datetime.datetime.now() if GPIO.input(33) == foto: camera.stop_recording() camera.stop_preview() camera.close() finally: camera.close() GPIO.cleanup() print("End of program")