Найти тему
IT Start | 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. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂

Мой Telegram канал

Мой YouTube канал

Курс по созданию GUI на Python

Наука
7 млн интересуются