Facer capturas de pantalla periódicamente
Published xuño 22nd, 2006 in HowTos, Programación, Software LibrePara as capturas de pantalla dos posts sobre Xogos de código aberto necesito un programa que cada certo tempo faga unha captura de pantalla. Hai moitos que fan capturas de pantalla, pero o único que atopei que fixera varias foi xvidcap. Está pensado para facer vídeos de presentación, co que ten a opción de cuspir directamente en formato vídeo ou imaxes soltas. Hai un tempo dera conseguido que me funcionase, pero agora, cando o intentei, non o din nin compilado nin instalado os pacotes binarios que hai por ahí.
Acabei descubrindo que as X traen un programa que se encarga de facer capturas de pantalla. Chámase xwd e en debian atópase no pacote xbase-clients. Pode facer capturas de toda a pantalla ou de fiestras en particular, pero nun formato propio: "X Window Dump image data". Por sorte con Imagemagick poderémolo converter a calquera outro formato de imaxe máis normal.
O caso é que acabei facendo dous pequenos Shell Scripts: capturar.sh e converter.sh, o primeiro para face-las capturas mentres ando polo xogo e o segundo para as converter a PNG.
capturar.sh
#! /bin/sh
# capturar.sh crea capturas de pantalla de toda a pantalla en formato xwd
# con nomes $i.xwd con un determinado intervalo de tempo entre
# captura e captura.
#
# capturar.sh DENDE ATA ESPERA
#
# Dependencias: xwd (X)
#
# DENDE: valor da primeira captura de pantalla (por defecto 0)
# ATA: valor da última captura de pantalla (Por defecto DENDE + 1000)
# ESPERA: tempo que se espera entre captura e captura (por defecto 5 segundos)if [ "$1" ]; then
since=$1
else
since=0
fiif [ "$2" ]; then
to=$2
else
let to=${since}+1000
fiif [ "$3" ]; then
secs=$3
else
secs=5
fifor i in `seq -w ${since} ${to}`; do
echo -ne "r${i}.xwd"
xwd -root -screen -silent > ${i}.xwd
sleep ${secs}s
done
converter.sh
#! /bin/sh
# converter.sh converte do formato xwd ata FORMATO.
#
# converter.sh DENDE ATA FORMATO
#
# Dependencias: convert (Imagemagick)
#
# DENDE: valor da primeira captura de pantalla (por defecto 0)
# ATA: valor da última captura de pantalla (Por defecto DENDE + 1000)
# FORMATO: (por defecto png)if [ "$1" ]; then
since=$1
else
since=0
fiif [ "$2" ]; then
to=$2
else
let to=${since}+1000
fiif [ "$3" ]; then
format=$3
else
format=png
fifor i in `seq -w ${since} ${to}`; do
echo -ne "r${i}.xwd -> ${i}.${format}"
convert ${i}.xwd ${i}.${format} 2> /dev/null
done
chúzame -




0 Responses to “Facer capturas de pantalla periódicamente”
Please Wait
Leave a Reply