[Screencast] Grabar pantalla con FFmpeg 4.2 + seguir cursor + mostrar cursor + grabar rectangulo de 480p

Es posible usar FFmpeg (desde la terminal) desde la versión 4.2 en adelante para grabar la pantalla en un rectángulo (de un tamaño más pequeño que la pantalla) y además de que la grabación mueva el rectángulo hacia donde uno quiera ir, incluso que el cursor se mueva dentro del rectángulo para poder explicar con todo detalle lo que uno desee, solo que con FFmpeg no se puede poner pausa, sino que se puede detener el video con Ctrl + C y se creará un archivo de video, y al repetir este proceso se crearán varios a los cuales luego uno los puede unir con algún programa o con FFmpeg mismo, y he tenido una de idea sobre que haya un programa que pueda hacer eso, y esta idea que he tenido la he hecho realidad en un programa (por decirlo así), ya disponible en:

ffmpeg-screencast
https://github.com/wachin/ffmpeg-screencast


y así funcionando:



Bueno, sigamos con las instrucciones para usarlo desde la terminal:

Sistemas Operativos Linux con FFmpeg 4.2

Los siguientes tiene ya 4.2 en adelante:

Ubuntu 20.04
Además para Sistemas Operativos Linux basados en este como son Linux Mint como Ulyana en adelante. Puede revisar los paquetes en:

https://packages.ubuntu.com/ffmpeg


Debian 11 Bulleye

Y para Sistemas Operativos Linux como MX Linux 21 (a esta fecha 20210909 en Beta 2), antiX 21(a esta fecha 20210909 en Beta 2) y para otros basados en Debian 11. Puede revisar los paquetes en:

https://packages.debian.org/ffmpeg

Nota: Al final dejo unas instrucciones de cómo compilar FFmpeg 4.2.4 en MX Linux 19 (basado en Debian 10 Buster), y otro enlace para instalar en Ubuntu 18.04 y basados en este desde PPA.

¿Qué es la resolución 480p?

Una resolución a 480p significa:

854x480 pixeles

la cual se verá bien en Youtube al subir el video allí:

Resoluciones de vídeo y relaciones de aspecto - Ordenador - Ayuda de YouTube
https://support.google.com/youtube/answer/6375112?co=GENIE.Platform%3DDesktop&hl=es



REQUISITOS

Para Ubuntu y sabores, y basados en Debian:
sudo apt install ffmpeg

Esta caracteristica sólo funciona correctamente en Sistemas Operativos Linux con FFmpeg 4 ejemplo Ubuntu 20.04 Focal que tiene la version FFmpeg 4.2.4 (https://packages.ubuntu.com/focal/ffmpeg), o Debian 11 bullseye que tiene FFmpeg 4.3.2 (https://packages.debian.org/bullseye/ffmpeg), esto o que usted mismo compile desde código fuente una de las versiones 4 de FFmpeg, al final dejo las instrucciones para eso

 

GRABAR RECTÁNGULO 480p + SEGUIR EL RATÓN (FIJO EN MEDIO)

Instrucciones para seguir el cursor en medio del recuadro

Ponga en la terminal: 

ffmpeg -follow_mouse centered -show_region 1 -video_size 854x480 -r 60 -f x11grab -i :0.0 \
-f alsa -ac 2 -i default \
-c:v libx264 -qp 0 -preset ultrafast \
"$HOME/Rec-$(date '+%Y-%m-%d_%H.%M.%S').mp4"

Nota: Para grabar la pantalla en un rectángulo con el cursor fijo en medio se puede usar cualquier versión de FFmpeg


GRABAR RECTÁNGULO 480p + SEGUIR EL RATÓN (MOVER BORDE A LOS 100px)

Las siguientes son instrucciones para grabar en un rectángulo de 854x480 pixeles + seguir el ratón para explicar con más detalle los lugares en la pantalla donde nos estemos moviendo, y el rectángulo solo se moverá siguiendo al ratón cuando el puntero llega dentro de los 100 píxeles hasta el borde dentro del recuadro
 
Ponga en la terminal:
ffmpeg -follow_mouse 100 -show_region 1 -video_size 854x480 -r 60 -f x11grab -i :0.0 \
-f alsa -ac 2 -i default \
-c:v libx264 -qp 0 -preset ultrafast \
"$HOME/Rec-$(date '+%Y-%m-%d_%H.%M.%S').mp4"

GRABAR RECTÁNGULO 480p + SEGUIR EL RATÓN (MOVER BORDE A LOS 50px)

Las siguientes son instrucciones grabar en un rectángulo de 854x480 pixeles + seguir el ratón y el rectángulo solo se moverá siguiendo al ratón cuando el puntero llega dentro de los 100 píxeles hasta el borde dentro del recuadro

Ponga en la terminal:  

ffmpeg -follow_mouse 50 -show_region 1 -video_size 854x480 -r 60 -f x11grab -i :0.0 \
-f alsa -ac 2 -i default \
-c:v libx264 -qp 0 -preset ultrafast \
"$HOME/Rec-$(date '+%Y-%m-%d_%H.%M.%S').mp4"

pongo este ejemplo para que ustedes puedan entender cómo cambiar ese valor y poner el que ustedes deseen.



GRABAR RECTÁNGULO 480p + SEGUIR EL RATÓN (MOVER BORDE A LOS 50px) para ordenadores de bajos recursos del procesador

Si tiene un ordenador con bajos recursos use el siguiente comando para grabar en un rectángulo de 854x480 pixeles + seguir el ratón y el rectángulo solo se moverá siguiendo al ratón cuando el puntero llega dentro de los 50 píxeles hasta el borde dentro del recuadro

Ponga en la terminal: 

ffmpeg -follow_mouse 50 -show_region 1 -video_size 854x480 -f 30 -f x11grab -i :0.0  \
-f alsa -ac 2 -i default \
-c:v libx264rgb -crf 0 -preset ultrafast \
"$HOME/Rec-$(date '+%Y-%m-%d_%H.%M.%S').mp4"

Nota: Los videos creados con este último comando sólo los he podido unir con MP4Joiner.

Codec consultado en:

Capture/Desktop – FFmpeg
Lossless Recording
https://trac.ffmpeg.org/wiki/Capture/Desktop


Ver Video:


Aquí explico que esta caracteristica funciona bien en Ubuntu 20.04 que tiene la version FFmpeg 4.2.4, pero no funciona bien en antiX 19.3 que tiene FFmpeg 4.1.5 (se escapa el cursor del recuadro)



GRABAR RECTÁNGULO 480p + SEGUIR EL RATÓN (MOVER BORDE A LOS 100px) en JACK

Si ustedes usen JACK en UbuntuStudio o AV Linux esta es la solución para poder hacer screencast con FFmpeg. Las siguientes son instrucciones para grabar en un rectángulo de 854x480 pixeles + seguir el ratón para explicar con más detalle los lugares en la pantalla donde nos estemos moviendo, y el rectángulo solo se moverá siguiendo al ratón cuando el puntero llega dentro de los 100 píxeles hasta el borde dentro del recuadro
 
Ponga en la terminal (cuando esté usando JACK):
ffmpeg -follow_mouse 100 -show_region 1 -video_size 854x480 -r 30 -f x11grab -i :0.0 \
-f jack -ac 2 -i ffmpeg \
-c:v libx264 -qp 0 -preset ultrafast \
"$HOME/Rec-$(date '+%Y-%m-%d_%H.%M.%S').mp4"


pero les explico que en las siguientes imagenes estaré usando las Conecciones antiguas (aproximadamente en el 2020 QjackCtl viene con una nueva interfaz para hacer las conecciones), para habilitar la que viene por defecto en:

"Setup"


y allí clic en "Otras" y desmarcar "Reemplazar conexiones con botón de Gráfico"


y Aplicar y Cerrar

Ahora si, una vez abierto el botón de las Conexiones:


como se ve en la siguiente imagen, primero expandir para ver bien, y hay que dar clic en "input _1" y luego en "capture_1":


y clic derecho en "capture_1" y clic en "Conectar":


y el micrófono del ordenador enviará audio a FFmpeg en esa entrada:



y hay que hacer los mismos pasos para el otro y debe quedar así:


Usando Patchbay para recordar la conección de FFmpeg

Recomiendo para no tener que estar a cada rato conectando (si es que van a hacer muchas pausas; y aun así se pueden olvidar y no les grabaría audio) usar patchbay:


denlen clic al botón para abrirlo:


como ven en la imagen de arriba deben estar los puertos conectados y dar clic en "Nueva" y darle "Si":


y darle clic en Guardar


y ponerle un nombre y Guardar:


y darle clic en Activar:



y pueden cerrar esa ventana, y desde allí en adelante siempre y cuando Patchbay esté activado él conectará automáticamente los puertos

en la siguiente imagen, en la flecha azúl ese parentesis y que dice Activa significa que está activado patchbay:



Nota: También aunque es más dificil se puede instalar JACK en otra distribución LINUX como por ejemplo MX Linux o antiX aquí.


GRABAR RECTÁNGULO 480p + SEGUIR EL RATÓN (MOVER BORDE A LOS 100px) en JACK para Ordenadores de bajos recursos del procesador

Si ustedes usen JACK en UbuntuStudio o AV Linux en un ordenador de bajos recursos del CPU las siguientes son instrucciones para grabar en un rectángulo de 854x480 pixeles + seguir el ratón para explicar con más detalle los lugares en la pantalla donde nos estemos moviendo, y el rectángulo solo se moverá siguiendo al ratón cuando el puntero llega dentro de los 100 píxeles hasta el borde dentro del recuadro
 
Ponga en la terminal (cuando esté usando JACK):
ffmpeg -follow_mouse 100 -show_region 1 -video_size 854x480 -f 30 -f x11grab -i :0.0  \
-f jack -ac 2 -i ffmpeg \
-c:v libx264rgb -crf 0 -preset ultrafast \
"$HOME/Rec-$(date '+%Y-%m-%d_%H.%M.%S').mp4"



Grabar usando la terminal Tilda

Me parece bien el usar tilda para usar allí los comandos para FFmpeg

sudo apt install tilda

una vez instalado lo pueden lanzar desde alguna terminal o desde el lanzador de aplicaciones de su distribución 

 


yo lo he configurado para que la ventana tenga un tamaño muy pequeño:


 para configurarlo así en un rectángulo pequeño se debe hacer esto, le dan clic derecho y en preferencias:

 


allí le he puesto en alto 96 y ancho 203:


así la ventana es muy pequeña y allí pego el comando de ffmpeg:

 

Para que Tilda no esté siempre Visible

Desmarque esa opción en:

General / Siempre Visible

y desmarcar:

General / Mostrar en la barra de tareas



y cerrar (el botón está abajo a la derecha)

Para mover tilda de una lado a otro

es necesario hacer así como la siguiente imagen:

Pausa.- Y para poner pausa solo aplastan "Ctrl + C" cuando estén encima de tilda

Reanudar.- Allí en tilda en el teclado aplastar la flecha Arriba y aparecerá el último comando usado el cual es el para grabar

Unir videos.- Se puede hacer lo siguiente para unir los videos:

UNIR VIDEOS

Con FFmpeg se pueden unir los videos con el mismo. Le recomiendo este método ya que no habrá que instalar nada más ni que se le actualicen otros paquetes (lo que tal vez remotamente podría causar algo de inestabilidad en su Sistema), sólo que debe de acostumbrarse a usar la terminal y comandos, las instrucciones en:

Unir / Combinar videos MP4 (u otro formato como MOV, AVI, MPG, MKV, mp3) con ffmpeg en Linux sin recodificarlos (desde la terminal) - Cómo
https://facilitarelsoftwarelibre.blogspot.com/2021/09/unir-combinar-videos-mp4-u-otro-formato.html


Con Avidemux

Instalar repositorio deb-multimedia.org en MX Linux 19 para instalar ejem: Avidemux, mp4joiner, mp4splitter, mp4tools  https://facilitarelsoftwarelibre.blogspot.com/2020/07/como-instalar-el-repisitorio-de.html

Cómo instalar Avidemux 2.7 en Ubuntu 16.04, 18.04, 20.04
https://facilitarelsoftwarelibre.blogspot.com/2017/11/como-instalar-avidemux-26-en-ubuntu.html

Cómo unir videos rápidamente con Avidemux sin necesidad de procesarlos, redenderizarlos
https://facilitarelsoftwarelibre.blogspot.com/2018/12/como-unir-videos-rapidamente-con.html


Con MP4Joiner

Cómo unir archivos de video sin recodificarlos con MP4Joiner en MX Linux 19

https://facilitarelsoftwarelibre.blogspot.com/2021/06/unir-videos-con-mp4joiner-en-mxlinux.html

 

CÓMO INSTALAR FFMPEG 4.2.4?

La versión 4.2.4 (donde funciona bien la característica de grabar con recuadro) la pude instalar en MX Linux 19 de 32 bits pero compilando desde código fuente, las instrucciones son las siguientes:

Cómo instalar FFmpeg 4.2.4 en MX Linux 19 (Basado en Debian 10) ~ Proyecto Facilitar el Software Libre en el Ecuador
https://facilitarelsoftwarelibre.blogspot.com/2021/06/como-instalar-ffmpeg-4.2.4-en-mx-linux-19.html

Cómo Instalar FFmpeg 4.2 en Ubuntu | Linux Mint con PPA
https://electronicssoftware.net/como-instalar-ffmpeg-en-ubuntu-linux-mint/


Dios les bendiga

BASADO EN:

x11grab
http://underpop.online.fr/f/ffmpeg/help/x11grab.htm.gz

Screen capture tools to record online tutorials / 2.1.2. Screen recording with FFmpeg / 2.1.2.2. Record screen and audio from your computer
https://twiki.cern.ch/twiki/pub/ELearning/WebHome/screen_capture_tools.pdf

wachin/FFMPEG-Jack: script to screencapture using ffmpeg and jack with an output-avi that contains the audio and video
https://github.com/wachin/FFMPEG-Jack

Comentarios