Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



domingo, 18 de noviembre de 2012

Captura de video y sonido: Grabar lo que haces en la pantalla de tu ordenador.

 Capturadora de video y sonido

Muchas veces nos he necesario grabar lo que estamos haciendo en la pantalla de ordenador, para hacer un videotutorial, reportar un error, etc..

Existen multitud de programas que lo hacen. Yo me he hecho uno con gambas3 (realizado en gambas3.3.90) usando ffmpeg

Realmente usa un script bash que encontré en un applets de cinnamon  , ScreenShot+Desktop Record realizado por  infektedpc

Pero le he añadido una mejora, que aparezca un cronómetro, para indicar cuanto tiempo llevamos grabando, muy útil si nuestro servidor (por ejemplo, youtube) tenemos limitado la duración del video a subir, o simplemente para llevar un control de la duración del video mientras estamos grabando


Además pulsando el botón de la carpeta accedemos a la carpeta donde se ha guardado el video (/home/carpeta usuario/Videos ). 

 El nombre del archivo, lo pone automáticamente: nombre del mes, dia, y hora:
Aqui teneis una captura funcionando...


Cuando se minimiza, se sigue viendo la duración del video junto a su icono.


La parte más interesante del programa es lo que hago al pulsar el boton de grabar:

Public Sub ToolButton1_Click()
If grabando = False Then
'iniciar la grabacion
ToolButton1.Picture = Picture["icon:/32/stop"]
Timer1.Enabled = True
grabando = True
Me.w = 196
Me.h = 63
Label1.text = "00:00:00"
Me.caption = Label1.text
Labelestado.Text = "grabando..."
Try Copy "screencapturesound.sh" To "/tmp/screencapturesound.sh" 'copio del interior del programa, el script, a la carpeta /tmp
Try Chmod "/tmp/screencapturesound.sh" To "rwx------" 'doy permisos de ejecución
Exec ["/tmp/screencapturesound.sh"] For Read 'para que no salga ningun valor en la terminal
Else
'estoy grabando... tengo que parar
tiempo = 0
Labelestado.Text = "estado: sin grabar"
Me.w = 252
Me.h = 133
Timer1.Enabled = False
Label1.text = "Duración"
Me.caption = "Capturadora"
Shell "killall -SIGTERM ffmpeg"
Endif
End

En el caso que de no este grabando (esto lo controlo con la variable "grabando"), modifica el formulario (cambiando la forma del formulario, el icono del boton, activa el timer que controla la cuenta del tiempo y empieza a ejecutar el script), si esta grabando, para la grabación (mata el proceso ffmpeg) y modifica las dimensiones del formulario.

Código fuente de descarga: crearvideotutorial.tag.gz
ejecutable en .gambas: crearvideotutorial.gambas
paquete .deb: crearvideotutorial.deb



Saludos.

Nota:

Teneis que tener instalado ffmpeg para que funcione el programa correctamente:
sudo apt-get install ffmpeg