Como Filmar a Tela do Computador com Python
Aprenda como filmar a tela do computador com Python. Isso mesmo, é possível gravar a tela do seu computador usando Python!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Como Filmar a Tela do Computador com Python
Aqui na Hashtag, já ensinamos como controlar e gravar com a sua webcam usando Python. Agora, você vai aprender como filmar a tela do computador com Python! Sendo possível até mesmo combinar esses dois códigos e fazer gravações completas.
Vou mostrar o passo a passo e as configurações necessárias para você conseguir gravar a tela do seu PC com Python.
O processo de como faremos isso é bem simples e rápido. Após esta aula, você estará pronto para capturar a tela do computador com Python e criar suas próprias gravações.
Não esqueça de fazer o download do material disponível para acompanhar e aprender como filmar a tela do computador com Python!
Criação do Arquivo e Instalação das Bibliotecas
Para desenvolvermos o código que nos permitirá filmar a tela do computador com Python, vamos precisar utilizar algum editor de códigos. Eu usarei o VS Code, mas você pode usar o de sua preferência.
Para este projeto, vamos utilizar as bibliotecas OpenCV, Keyboard, Numpy e PyAutoGUI.
O PyAutoGUI será responsável por tirar o print da nossa tela, e passar através do Numpy para o OpenCV que criará o vídeo. A biblioteca Keyboard será responsável por interromper a gravação da tela.
Vamos às instalações necessárias. Abra seu editor de código, crie um arquivo para desenvolver seu código e no terminal do editor execute:
pip install numpy pyautogui opencv-python keyboardApós isso, você pode importar essas bibliotecas para seu código.
import cv2
import keyboard
import pyautogui
import numpy as npObserve que estamos importando o OpenCV como cv2 e o Numpy com o alias de np.
Como vai funcionar a gravação de tela com Python
Um vídeo é, basicamente, uma combinação de diversos frames (quadros), que são como fotos do vídeo. Quando reproduzimos esses quadros em rápida sucessão, o olho humano percebe essa sequência como um vídeo.
Isso é o que significa quando vemos, por exemplo escrito 30 fps ou 60 fps em algum programa, vídeo ou jogo. Essa é a abreviação de frames per second (quadros por segundo), ou seja, 30 fps representam 30 “fotos” exibidas a cada segundo.
Portanto, nosso código fará várias capturas de tela dentro de um intervalo de um segundo. Posteriormente, ao renderizar o vídeo, determinaremos quantos quadros por segundo nosso vídeo terá.
Configurações para o Vídeo
Após importar as bibliotecas necessárias, o próximo passo do nosso código para filmar a tela do computador com Python é definir algumas configurações para o nosso vídeo.
Taxa de Quadros (FPS): Começamos definindo a taxa de quadros (fps) como 30. A taxa de quadros, como vimos, determina quantos quadros de imagem são exibidos por segundo no vídeo.
fps = 30É importante observar que, se a tela do seu computador não suporta uma taxa de quadros maior que 30 fps, inserir um valor maior para essa variável não terá efeito, pois a gravação ficará limitada pela capacidade da tela.
Resolução do Vídeo: Também precisamos definir a resolução final do nosso vídeo. Para isso, usamos a função pyautogui.size() e convertemos o resultado em uma tupla.
tamanho_tela = tuple(pyautogui.size())Precisamos fazer isso porque a função pyautogui.size() retorna um objeto, mas a biblioteca OpenCV, responsável por criar o vídeo, requer uma tupla para determinar a resolução final do vídeo.
Codec do Vídeo: Agora, precisamos criar o codec para o nosso vídeo. Um codec de vídeo, de forma resumida, é um software que permite compactar e descomprimir vídeos digitalmente.
O OpenCV é capaz de fazer isso pra gente através da função VideoWriter_fourcc(). Essa função é usada para definir o codec que será usado ao criar o nosso arquivo de vídeo. Nos permitindo especificar o codec que será usado para comprimir o vídeo durante a gravação da tela.
codec = cv2.VideoWriter_fourcc(*"XVID")Nesse exemplo, estamos usando o codec Xvid para criar um vídeo no formato AVI. Lembre-se de que você deve passar o código do codec nesse formato (*”CÓDIGO_DO_CODEC”) para a função VideoWriter_fourcc().
Inicialização do Vídeo: Agora que as configurações estão prontas, podemos criar o nosso vídeo. Usamos a função VideoWriter, passando como argumentos o nome do arquivo com a extensão correspondente ao codec, o codec em si, a taxa de quadros (fps) e o tamanho da tela que será renderizado
video = cv2.VideoWriter("video.avi", codec, fps, tamanho_tela)Com isso, a configuração do nosso vídeo está pronta, e a gravação será salva nesse formato determinado.
Como Filmar a tela do Computador com Python
A configuração do nosso vídeo está pronta, agora precisamos definir como iremos gravar a tela do computador com Python.
Para isso, criamos um loop infinito que tira uma captura de tela usando a função pyautogui.screenshot() e, em seguida, transforma o quadro dessa captura em uma matriz numpy.
No OpenCV, as imagens são tratadas como matrizes, onde cada pixel contém informações sobre a quantidade de vermelho, verde e azul (RGB).
No entanto, o OpenCV lida com a ordem dessas cores de forma diferente, seguindo o padrão BGR (azul, verde e vermelho) em vez de RGB (vermelho, verde e azul). Portanto, é necessário converter as cores dos nossos frames para o formato BGR usando a função cv2.cvtColor().
while True:
frame = pyautogui.screenshot()
frame = np.array(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)Nesse loop infinito, gravamos continuamente os frames usando a função video.write(frame) que irá escrever o nosso frame dentro do vídeo.
while True:
frame = pyautogui.screenshot()
frame = np.array(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
video.write(frame)Dentro do loop, precisamos definir um comando para interromper a gravação. Para isso, utilizamos a biblioteca keyboard associada a uma estrutura condicional if. Se a tecla Esc for pressionada, o loop infinito será interrompido e a gravação encerrada.
while True:
frame = pyautogui.screenshot()
frame = np.array(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
video.write(frame)
if keyboard.is_pressed("esc"):
breakApós interromper o loop de gravação, é importante finalizar a gravação e fechar todas as janelas do OpenCV para garantir que o vídeo seja salvo corretamente.
video.release()
cv2.destroyAllWindows()Dessa forma, temos o nosso código pronto para filmar a tela do computador com Python.
import cv2
import keyboard
import pyautogui
import numpy as np
fps = 30
tamanho_tela = tuple(pyautogui.size())
codec = cv2.VideoWriter_fourcc(*"XVID")
video = cv2.VideoWriter("video.avi", codec, fps, tamanho_tela)
while True:
frame = pyautogui.screenshot()
frame = np.array(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
video.write(frame)
if keyboard.is_pressed("esc"):
break
video.release()
cv2.destroyAllWindows()Ao executar o código, a gravação da tela do computador começará, e você poderá interrompê-la pressionando a tecla Esc.

Conclusão – Como Filmar a Tela do Computador com Python
Na aula de hoje, você aprendeu o passo a passo para gravar a tela do computador com Python, cobrindo todas as configurações necessárias.
No entanto, como você deve ter notado, o resultado desse vídeo não inclui áudio. No entanto, você pode combinar este código com o que ensinamos em uma aula anterior, na qual explicamos como capturar o áudio do microfone do seu computador com Python.
Dessa forma, você terá um código prático e eficiente que permitirá fazer gravações completas da tela do seu computador usando Python.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!


