Записывайте видео до тех пор, пока не будет достигнуто определенное время

#python #python-3.x #raspberry-pi #video-capture #picamera

Вопрос:

Я пытаюсь записать видео с помощью camera.start_recording picamera пакета from до тех пор, пока не будет достигнуто определенное заданное время. Я пытался решить эту проблему, используя код, аналогичный следующему MWE.

 import picamera
import time

time_to_record = 15

camera = picamera.PiCamera()
camera.resolution = (1920, 1080)
camera.framerate = 24

end_time = time.time()   time_to_record
while time.time() <= end_time:
            camera.start_recording('Test.h264', format='h264')
            # Here is another functions that samples a value from a thermocouple and annotates it in the video

           
 

Из — за функции, упомянутой в комментарии, я не могу использовать метод camera.wait_recording() из picamera пакета.
Камера должна работать в течение определенного времени, поэтому цикл должен оставаться.
Когда я запускаю свой код, я получаю следующее исключение:

camera.PiCameraAlreadyRecording

в котором упоминается, что камера уже ведет запись. Я думаю, что это проблема, связанная с циклом while, потому camera.start_recording() что метод вызывается несколько раз. Я понятия не имею, как я могу избежать этой проблемы, не отказываясь от возможности записывать в течение определенного времени. Может быть, у кого-то есть идея?

Комментарии:

1. Есть ли причина, по которой вы не можете просто перейти camera.start_recording к строке перед циклом while?

2. Да, как я уже упоминал, функция, которая извлекает значения из термопары, также работает внутри этого цикла, и поэтому наличие видео, которое длится до тех пор, пока измерение помогает мне соотносить значения температуры с другими измеренными данными.

3. Так что оставьте эту функцию в покое и просто начните запись прямо перед циклом while. Может быть, я что-то упускаю?

4. Я не думаю, что это решит проблему. Внутри функции камера также регулируется по температуре. Таким образом, существует еще одно предложение if, которое запускает фактический процесс записи при достижении критической температуры. В настоящее время я думаю, что, возможно, разделение различных задач приведет к решению. Потому что, следовательно, я могу контролировать различные AiO,

5. опубликуйте свой полный код, и я буду рад помочь. В настоящее время недостаточно информации, чтобы дать оптимальный ответ.