Введение
В ходе статьи научимся записывать видео на веб-камеру при помощи языка программирования 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 канал