Raspberry Pi 5 требуется более 1:30 секунды для захвата 40-секундного видео с помощью IP-камеры [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Raspberry Pi 5 требуется более 1:30 секунды для захвата 40-секундного видео с помощью IP-камеры [закрыто]

Сообщение Anonymous »

Я захватываю видео с помощью OpenCV на Python в Raspberry PI 5 B+, но сталкиваюсь с серьезными проблемами с продолжительностью и качеством видео.
Подробнее:
Проблема с продолжительностью:
Я установил продолжительность захвата видео на 40 секунд, но общее время, необходимое для выполнения сценария, взято из сообщения журнала logging.info(f «Захват видео в {video_path}») до logging.info(f «Завершен захват видео в {video_path}») — каждый раз составляет примерно 1 минуту 40 секунд. Это намного дольше, чем ожидалось.
Проблема с качеством кадра:
В течение первых 10 секунд захваченного видео кадры выглядят хорошо, а видео работает плавно. Однако по истечении этого начального периода видео становится резким и пропускает кадры. Такое ухудшение качества влияет на удобство использования записанного видео.

Код: Выделить всё

def capture_video(cap, video_base_directory, timezone, frame_width, frame_height, fps = 20, duration=40):
os.makedirs(video_base_directory, exist_ok=True)
video_filename = f"video_capture_{datetime.now(timezone).strftime('%Y-%m-%d_%H-%M-%S')}.mp4"
video_path = os.path.join(video_base_directory, video_filename)
video_codec = cv2.VideoWriter_fourcc(*'mp4v')
video_output = cv2.VideoWriter(video_path, video_codec, fps, (frame_width, frame_height))

total_frames = int(fps * duration)
buffer_size = fps * duration * 0.5
frame_buffer = []

logging.info(f"Capturing video at {video_path}")

for _ in range(total_frames):
frame = cap.read()[1]  # Directly read the frame
frame_buffer.append(frame)

if len(frame_buffer) >= buffer_size:
for buffered_frame in frame_buffer:
video_output.write(buffered_frame)
frame_buffer.clear()

logging.info(f"Finished Capturing video at {video_path}")
video_output.release()
return video_path, video_filename
Я ожидал 40-секундного плавного видео. По крайней мере, когда я запускал код на своем ПК, это занимало примерно 40 секунд, а видео было плавным.
Я экспериментировал с несколькими размерами буфера (20–400 кадров), а также прямая запись в видеофайл и отсутствие буфера. Проблема та же.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -ip-camera
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»