#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. опубликуйте свой полный код, и я буду рад помочь. В настоящее время недостаточно информации, чтобы дать оптимальный ответ.