Запись видео на веб-камеру при помощи Python

Запись видео на веб камеру при помощи Python Статьи

Введение

В ходе статьи научимся записывать видео на веб-камеру при помощи языка программирования Python.

Установка нужных модулей

Для написания кода нам понадобится модуль opencv-python, а для его более корректной работы ещё и numpy. Для их установки нужно перейти в терминал или же командную строку, прописать pip install opencv-python numpy, нажать Enter и ждать установки.

Написание кода

Для начала импортируем opencv:

import cv2

Инициализируем веб-камеру:

import cv2

cap = cv2.VideoCapture(0)  # 0 - это индекс камеры, их может быть несколько, зависит от количества камер

Укажем частоту кадров, ширину и высоту:

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 24)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

Определим кодек и создадим объект записи видео:

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 24)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

codec = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', codec, 25.0, (1280, 720))  # Название итогового видео, кодек, фпс видео, разрешение

Создадим бесконечный цикл. Внутри цикла считываем кадры с камеры методом read(). Сам метод возвращает флаг ret (True/False) и frame:

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 24)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

codec = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', codec, 25.0, (1280, 720))

while True:
    ret, frame = cap.read()

Отобразим изображение с камеры, чтобы можно было проверить как и что она снимает:

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 24)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

codec = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', codec, 25.0, (1280, 720))

while True:
    ret, frame = cap.read()
    cv2.imshow('Web-camera', frame)

Сохраним кадры, и добавим условие, что при нажатии клавиши «q» запись будет прекращаться:

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 24)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

codec = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', codec, 25.0, (1280, 720))

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

Закроем всё:

import cv2

cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 24)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

codec = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', codec, 25.0, (1280, 720))

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

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

Видеоурок

Запись видео на веб камеру при помощи Python

Заключение

В ходе статьи мы с Вами научились записывать видео на веб-камеру при помощи языка программирования Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Admin
Admin
IT Start