Como gravar vídeo usando a câmara do seu computador?

Vale a pena colocar Sticks na câmara do seu portátil?

Há um hábito estabelecido em quem tem computadores portáteis de colocar um stick a tapar a câmara. Este receio é fundado? Existe o perigo de gravar as suas ações usando a sua câmara?

A resposta é sim e vamos mostrar como fazê-lo usando uma linguagem de programação muito popular Python.

Esta nova moda também virou uma ameaça por email. Quem já não recebeu email com a indicação de que foi gravado em situações menos abonatórias e exige um pagamento em bitcoin, caso contrário o video é enviado para a sua lista de contatos?

Objetivo deste artigo:

Mostrar que a gravação de video usando a sua câmara, contra a sua vontade é simples.

Linguagem de programação:

A linguagem de programação que melhor se adequa a esta tarefa e Python com a livraria CV2.

Como se instala a CV2?

Procure o ficheiro pip.exe e faça o seguinte comando:

 

pip install opencv-python

Se tudo estiver correto os seguintes comandos não devem dar erro:

instalação cv2
fig 1 – Verificação da instalação CV2

 

 

Capturar imagem da câmara de vídeo

Comecemos por capturar uma imagem da câmara de vídeo. 

Eis o código:

import numpy as np
import cv2,time
video=cv2.VideoCapture(0)
check,frame=video.read()
print(check)
print(frame)
cv2.imshow("Capture",frame)    
video.release()
cv2.destroyAllWindows

O código é fácil de entender e por isso as explicações não serão muito necessárias. O print check é feito para verificar se não há erro e o print frame mostra numa matriz os resultados capturados. Estas duas instruções não  são importantes. Nesta altura se executar o programa vê uma imagem no ecrã, capturada pela sua câmara de vídeo.

 

Fazer um streaming de vídeo

Fazer um streaming é basicamente colocar um ciclo de repetição e ir gravando imagens. O ciclo de repetição que melhor se adequa a esta situação é o While. O código será o seguinte:

 

import numpy as np
import cv2,time
video=cv2.VideoCapture(0)
while True:    
    check,frame=video.read()
    print(check)
    print(frame)
    cv2.imshow("Capture",frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break    
video.release()
cv2.destroyAllWindows


Note-se que o programa só pára quando se premir a tecla q. É possível também ter uma variável e fazer o streaming por x milissegundos.

 

Gravar o vídeo num ficheiro

Finalmente iremos guardar o resultado do vídeo num ficheiro. Sem guardar o vídeo tudo o que fizemos até agora é pouco interessante. Quando gravamos o vídeo necessitamos de especificar que codec queremos usar. O código é o seguinte:

 

import numpy as np
import cv2,time
cap=cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        #frame = cv2.flip(frame,0)        
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
cap.release()
out.release()
cv2.destroyAllWindows()

Fácil?

Quer contatar-nos?

Desenvolvemos software à medida tanto para Internet, como para windows. 
Se procura um serviço de programação consulte-nos. Os orçamentos são gratuitos e quem sabe se após a nossa consulta não encontra uma proposta diferente para o seu problema.

Estamos ligados à empresa de comercialização de soluções de hardware Urupema. Consulte os nossos preços e condições.