Grabando el escritorio de windows con ffmpeg

1 comentario

Me encontraba en windows y necesitaba grabar el escritorio completo, asi que en ves de irme por el camino fácil, se me ocurrió usar un programa que en GNU/Linux es una autentica navaja suiza, el famoso ffmpeg, que tiene versiones para varios sistemas.

Como estaba en windows, no quise tener problemas con las dependencias, así que me baje una versión ya compilada con las librerías incluidas (versión static) desde la pagina de Zeranoe.

A  diferencias de GNU/Linux, en windows no hay algo como el X11 de GNU/Linux que maneja toda la interfaz gráfica, por lo que no resulta tan fácil grabar un vídeo. Aun así hay un par de alternativas:

  1. Una es usar vfwcap pero este usa el ya obsoleto Video for Windows, así que busque algo mas nuevo.
  2. La segunda opción era usar dshow (basado en DirectShow), por lo que seguí esta ruta

Así que una vez que tenia ffmpeg funcionando, comprobé que dispositivos estaban disponibles en DirectShow haciendo

ffmpeg -list_devices true -f dshow -i dummy

El resultado fue el siguiente:

Hay dos dispositivos, uno de audio (llamado “Microphone (Realtek High Defini”)  y otro de video (“Sony Visual Communication Camera”), como esto lo hice en mi Laptop, estos dispositivos corresponden a la Webcam y su correspondiente micrófono, que esta integrada sobre la pantalla del equipo. Así que ya podía grabar todo lo que capturara la webcam y/o el microfono que tenia el Laptop.

Pero yo quería grabar lo que muestra mi escritorio, no la webcam. Así que para eso tenia que instalar algún filtro de DirectShow que pudiera reproducir la pantalla del equipo. En una búsqueda rápida por google se encuentran varios, como por ejemplo UScreenCapture (que tiene versiones de 32 y 64 bits) o el virtual audio/video capture grabberdevice, yo opte por este ultimo, ya que incluía un filtro para audio.

Así que lo instale y al hacer ffmpeg -list_devices true -f dshow -i dummy aparecían nuevos dispositivos, los que para utilizarlos, simplemente hay que hacer algo como esto:

ffmpeg -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" ...opciones...

donde -i especifica que dispositivos se están usando para capturar (en este caso se captura tanto el audio como el video, pero también se puede capturar solo uno de ellos) y  …opciones… son los distintos parámetros que acepta ffmpeg (que son muchisimos), por ejemplo si se hace:

ffmpeg -f dshow -i audio="virtual-audio-capturer":video="screen-capture-recorder" -r 30 -vcodec mpeg4 -q 10 salida.mp4

Resulta en un archivo llamado salida.mp4 que esta grabado con el codec de vídeo mpeg4 a -r 30 (30 Frames por segundo) con una calidad -q 10 (1 es la mejor y 30 la peor)

Aquí pueden ver un resultado en bruto sin ninguna edición (youtube bajo en algo la calidad ya que el vídeo original estaba a la resolución real de mi escritorio 1366×768)

 

Windows 3.11 en tu navegador

Deja un comentario

Si a alguien le baja la nostalgia, en este sitio se puede encontrar una versión Web de Windows 3.11

Web: http://www.michaelv.org (visto en anieto2k)