Python - запись видео на 10 минут и выключение - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь написать скрипт, который будет

  1. Включаться при запуске
  2. Записывать на 10 минут, затем выключать и сохранять файлы
  3. Затем запустить скрипт каждые 10 минут

Программа должна записывать видео по 10 минут за один раз. Затем выключите на 10 минут, затем включите и запишите еще на 10 минут, пока программа не будет выключена.

Это то, что я имею до сих пор. Камера работает, но я не знаю, как заставить запись части синхронизации.

Как заставить этот код записать в течение 10 минут, затем выключить и сохранить? Как заставить код повторяться каждые 10 минут?

КОД:

import numpy as np
import os
import cv2

import schedule
import time



    filename = 'UATm5.avi'
    frames_per_second = 24.0
    res = '720p'

# Set resolution for the video capture
def change_res(cap, width, height):
    cap.set(3, width)
    cap.set(4, height)

# Standard Video Dimensions Sizes
STD_DIMENSIONS =  {
    "480p": (640, 480),
    "720p": (1280, 720),
    "1080p": (1920, 1080),
    "4k": (3840, 2160),
}


# grab resolution dimensions and set video capture to it.
def get_dims(cap, res='1080p'):
    width, height = STD_DIMENSIONS["480p"]
    if res in STD_DIMENSIONS:
        width,height = STD_DIMENSIONS[res]
    ## change the current caputre device
    ## to the resulting resolution
    change_res(cap, width, height)
    return width, height

VIDEO_TYPE = {
    'avi': cv2.VideoWriter_fourcc(*'XVID'),
    #'mp4': cv2.VideoWriter_fourcc(*'H264'),
    'mp4': cv2.VideoWriter_fourcc(*'XVID'),
}

def get_video_type(filename):
    filename, ext = os.path.splitext(filename)
    if ext in VIDEO_TYPE:
      return  VIDEO_TYPE[ext]
    return VIDEO_TYPE['avi']



    cap = cv2.VideoCapture(0)
    out = cv2.VideoWriter(filename, get_video_type(filename), 25, get_dims(cap, res))

while True:
    ret, frame = cap.read()
    out.write(frame)
    cv2.imshow('frame',frame)
    if cv2.waitKey(20) & 0xFF == ord('q'):
        break


cap.release()
out.release()
cv2.destroyAllWindows()

:

СПАСИБО ЗА ПОМОЩЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...