Crie um gravador de tela usando Python
Python é uma linguagem de uso geral amplamente usada. Permite realizar uma variedade de tarefas. Um deles pode estar gravando um vídeo. Ele fornece um módulo chamado pyautogui que pode ser usado para o mesmo. Este módulo junto com NumPy e OpenCV fornece a maneira de manipular e salvar as imagens (captura de tela neste caso)
Módulos necessários
- Numpy: Para instalar o Numpy, digite o comando abaixo no terminal.
pip install numpy
- pyautogui: Para instalar o pyautogui, digite o comando abaixo no terminal.
pip install pyautogui
- OpenCV: Para instalar o OpenCV digite o comando abaixo no terminal.
pip install opencv-python
Abaixo está a implementação.
Primeiro, importe todos os pacotes necessários.
import
pyautogui
import
cv2
import
numpy as np
Agora, antes de gravar a tela, temos que criar um objeto VideoWriter. Além disso, temos que especificar o nome do arquivo de saída, codec de vídeo, FPS e resolução de vídeo. No codec de vídeo, temos que especificar um código de 4 bytes (como XVID, MJPG, X264, etc.). Estaremos usando XVID aqui.
resolution
=
(
1920
,
1080
)
codec
=
cv2.VideoWriter_fourcc(
*
"XVID"
)
filename
=
"Recording.avi"
fps
=
60.0
out
=
cv2.VideoWriter(filename, codec, fps, resolution)
Opcional: Para exibir a gravação em tempo real, temos que criar uma janela vazia e redimensioná-la.
cv2.namedWindow(
"Live"
, cv2.WINDOW_NORMAL)
cv2.resizeWindow(
"Live"
,
480
,
270
)
Agora, vamos começar a gravar nossa tela. Estaremos executando um loop infinito e, a cada iteração do loop, faremos uma captura de tela e escreveremos no arquivo de saída com a ajuda do gravador de vídeo.
while
True
:
img
=
pyautogui.screenshot()
frame
=
np.array(img)
frame
=
cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
cv2.imshow(
'Live'
, frame)
if
cv2.waitKey(
1
)
=
=
ord
(
'q'
):
break
Depois que tudo for feito, iremos liberar o escritor e destruir todas as janelas abertas pelo OpenCV.
out.release()
cv2.destroyAllWindows()
Código Completo:
import
pyautogui
import
cv2
import
numpy as np
resolution
=
(
1920
,
1080
)
codec
=
cv2.VideoWriter_fourcc(
*
"XVID"
)
filename
=
"Recording.avi"
fps
=
60.0
out
=
cv2.VideoWriter(filename, codec, fps, resolution)
cv2.namedWindow(
"Live"
, cv2.WINDOW_NORMAL)
cv2.resizeWindow(
"Live"
,
480
,
270
)
while
True
:
img
=
pyautogui.screenshot()
frame
=
np.array(img)
frame
=
cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
cv2.imshow(
'Live'
, frame)
if
cv2.waitKey(
1
)
=
=
ord
(
'q'
):
break
out.release()
cv2.destroyAllWindows()
Resultado:
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva