Archive

Archive for the ‘Python’ Category

JPG a MPG con Python

June 9th, 2011 1 comment

Vamos a ver como transformar nuestras fotos capturadas con la webcam en un video MPG para poderlo ver de forma rápida.

Para poder realizar esto, nos van ha hacer falta una serie de librerias, las cuales podemos encontrar aquí.

Se trata de las librerias pymedia y pygame.

Una vez instaladas en nuestro sistema (windows), podemos ejecutar este script para poder transformar las fotos en video.

import sys, os, time
import pymedia.video.vcodec as vcodec
import pygame

outFile = ‘C:/AppServ/www/video-test.mpg’
directory = ‘C:/AppServ/www/fotos’
outCodec = ‘mpeg1video’

# Get video stream dimensions from the image size
pygame.init()
i= 1
# Opening mpeg file for output
e= None
i= 1
fw= open( outFile, ‘wb’ )

for file in os.listdir(directory):
fullname = os.path.join(directory, file)
s= pygame.image.load( fullname )
if not e:
if outCodec == ‘mpeg1video’:
bitrate= 2700000
else:
bitrate= 9800000

params= { \
‘type’: 0,
‘gop_size’: 12,
‘frame_rate_base’: 10,
‘max_b_frames’: 0,
‘height’: s.get_height(),
‘width’: s.get_width(),
‘frame_rate’: 2997,
‘deinterlace’: 0,
‘bitrate’: bitrate,
‘id’: vcodec.getCodecID( outCodec )
}

e= vcodec.Encoder( params )
t= time.time()

ss= pygame.image.tostring(s, “RGB”)
bmpFrame= vcodec.VFrame(vcodec.formats.PIX_FMT_RGB24, s.get_size(), (ss,None,None))
yuvFrame= bmpFrame.convert(vcodec.formats.PIX_FMT_YUV420P)
d= e.encode( yuvFrame )
fw.write( d.data )
i+= 1

fw.close()
pygame.quit()

Podemos descargar el script original: test-make-video

Caputar webcam con Python

June 9th, 2011 1 comment

Vamos a ver como se puede realizar un pequeño script que funciona con Python con el objetivo de realizar una captura de pantalla cada cierto tiempo. De esta forma, podemos saber quien usa nuestro PC y si se enciende a horas que no tocan.

Para ello, haremos uso de la libreria PIL y VideoCapture. Antes de empezar, voy a remarcar, que esto lo he probado con Python 2.7 bajo Windows.

import time, VideoCapture
carpetaEspecificada = “fotos/”
myWebCam = VideoCapture.Device()
myWebCam.setResolution(640, 480)
numero = 0
while 1:
     myWebCam.saveSnapshot(carpetaEspecificada+str(numero)+”.jpg”)
     numero += 1
     time.sleep(20)

Con esto, el script realizará una foto con nuestra webcam cada 20 segundos y las guardará en el directorio fotos/. Además también podremos ajustar la resolución con la que hacemos la captura (habrá que tener en cuenta que a más resolución, más tamaño ocuparán nuestras imágenes.

Podeis descargar el script original aquí: test-webcam-capture