Hacer Screencast en Linux y no morir en el intento (FFmpeg)


Hay varias apps en Linux que nos permiten hacer screencasting (grabar nuestro escritorio) con buenos resultados. Sin embargo, en algunas distros, escritorios y con algunas GPU puede haber problemas: Lags, cuadros azules, glitches, ventanas divididas, alto consumo de recursos, audio y video desfasados etc etc etc.

Es por esto que la alternativa más simple, práctica, poderosa (y funcional) para poder grabar nuestro escritorio en Linux es usar FFmpeg desde consola, con un pequeño comando en el cual ajustamos nuestras preferencias y listo. Asumiendo que tu sistema ya tenga instalados códecs propietarios (Como el MP3 y compañía por ejemplo, ya que no vienen por defecto en varias distros allá afuera) Y también el paquete ffmpeg (que se puede instalar desde los repos oficiales de cualquier distro en caso de que no lo tengas), El comando a utilizar para empezar a grabar tu pantalla con todo y audio sin ninguno de los errores antes mencionados es el siguiente:

ffmpeg -f pulse -ac 2 -i default -f x11grab -r 15 -s 1919x1079 -i $DISPLAY -acodec pcm_s16le -vcodec libx264 -preset ultrafast -threads 0 -y ~/mi-video.avi

Aquí recuerda cambiar "1919x1079" por la resolución de tu pantalla y "mi-video" por el nombre de tu video si asi lo deseas.

y éso es todo, poniendo el comando en la terminal y dando ENTER el screencast comenzará a grabarse con todo y sonido si tienes un micrófono conectado. El resultado final será un video "AVI" de excelente calidad en definición que puedes usar para subir a Youtube por ejemplo; Para detener la grabación vuelves a consola y presionas "q" y/o "Ctrl + C". El video se guarda en tu carpeta personal.

¿Formatos Libres?

Si por alguna razón el uso del formato AVI no te parece cómodo, siempre puedes usar herramientas como WinFF, Arista Transcoder, Transmageddon (o hasta tu editor de video favorito como Kdenlive/OpenShot si quieres editar un poco más el resultado) Para convertir lo grabado a cualquier formato de tu preferencia.

¿NVIDIA/ATI y fragmentación?

En algunas tarjetas gráficas de las más conocidas, cuando se usan los drivers propietarios de las mismas se pueden tener problemas en pantalla (glitches) al momento de grabar. Para las tarjetas ATI basta con activar la opción de video "tear free" en el Catalyst Control Center y en NVIDIA podemos desactivar el "Sync to VBlank" y el "Allow Flipping" dentro de las "OpenGL Settings" en nuestro centro de control NVIDIA X Server Settings:



De paso en "PowerMizer" (NVIDIA) Asegúrate de estar funcionando en Maximum Performance también.