Введение
В ходе статьи напишем программу для записи видео с экрана монитора на языке программирования Python.
Программа для записи видео на Python
Для написания программы для записи видео нам понадобится установка двух модулей, а именно pyautogui, numpy, cv2 и Pillow для корректной работы. Для их инсталляции нужно перейти в терминал, или же командную строку, прописать pip install pyautogui opencv-python numpy Pillow, нажать Enter и ждать установки.
Можем перейти к написанию кода, и для начала импортируем все модули, которые нам понадобятся:
import cv2
import numpy as np
import pyautogui
Зададим разрешение экрана дисплея:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
Определим кодек:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
Создадим объект записи видео:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
Создадим бесконечный цикл while, внутри которого во время каждой итерации будем делать скриншот:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
Далее преобразовывать пиксели в правильный массив numpy для работы с OpenCV:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
frame = np.array(img)
Преобразуем цвета из BGR в RGB:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
Создадим рамку и выведем её:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
Добавим условие, что если была нажата клавиша «q», то программа завершает запись видео:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
if cv2.waitKey(1) == ord("q"):
break
Осталось только всё закрыть:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = (1920, 1080)
fourcc = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("output.avi", fourcc, 20.0, (SCREEN_SIZE))
while True:
img = pyautogui.screenshot()
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
if cv2.waitKey(1) == ord("q"):
break
cv2.destroyAllWindows()
out.release()
Заключение
В ходе статьи мы с Вами написали программу для записи видео с экрана монитора на Python. Надеюсь Вам понравилась статья, желаю удачи и успехов! 🙂