Actualmente los sistemas operativos nos permiten realizar múltiples acciones sobre ellos sin importar el tipo de destino que esta sea, administrativa, personal o más.
Dentro de estas acciones existe una en especial que es muy útil por su finalidad, esta acción es grabar la pantalla de nuestro sistema la cual es útil en casos como:
- Envío de evidencias
- Soportes administrativos
- Explicación de determinadas tareas y más.
Aunque es cierto que existen diversas herramientas para realizar esto hoy en Solvetic analizaremos como lograrlo con una función integrada en el mismo sistema, comandos, esto lo lograremos con el comando FFmpeg.
FFmpeg es compatible con todos los formatos que tenemos disponibles y una de sus características más útiles es que puede compilar y ejecutar archivos multimedia en Linux, macOS, Microsoft Windows, BSD, Solaris y más con total funcionalidad.
FFmpeg contiene librerías libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale y libswresample las cuales son necesarias para que las aplicaciones pueden funcionar de forma ideal. Adicional a esto, se cuenta con ffmpeg, ffplay y ffprobe las cuales serán útiles para transcodificar y reproducir los archivos multimedia.
La seguridad es otro de los pilares de FFmpeg por lo cual de forma constante se está revisando el código fuente para evitar cualquier tipo de ataque.
- ffmpeg: Es una herramienta de línea de comandos que nos permite convertir los archivos multimedia a diferentes formatos.
- ffplay: Es un reproductor basado en SDL y compatible con las librerías FFmpeg.
En este tutorial profundizaremos en ffmepg, ffmpeg es un convertidor de audio y vídeo de alta velocidad que tiene la capacidad de tomar una fuente de audio o vídeo en vivo. También puede convertir archivos entre frecuencias de muestreo arbitrarias y cambiar el tamaño del vídeo conservando la óptima calidad del vídeo.
1. Instalar FFmpeg en Linux
Para este análisis usaremos Ubuntu 17.10.
Para instalar FFmpeg en Ubuntu ejecutaremos la siguiente línea:
sudo apt install ffmpeg
Para otras distribuciones usaremos los siguientes comandos:
sudo apt-get install ffmpeg
sudo dnf install ffmpeg
sudo pacman -S ffmpeg
sudo zypper install ffmpeg
En el caso de otras distribuciones de Linux debemos ejecutar la siguiente secuencia de comandos:
git clone https://github.com/FFmpeg/FFmpeg.git (Clonar el archivo .git) cd FFmpeg (Acceder al directorio) ./configure (Ejecutar la configuración) Make (Compilación) sudo make install (Instalación de FFmpeg)
2. Usar FFmpeg en linux
Una recomendación es conservar los vídeos en una sola carpeta para ello, si así lo deseamos, crearemos el siguiente directorio:
mkdir -p ~/Vídeos/ffmpeg-capture/
Luego accederemos a el:
cd ~/Vídeos/ffmpeg-capture/
Una vez allí vamos a ejecutar la siguiente línea:
fmpeg -vídeo_size 1600x795 -framerate 30 -f x1grab -i :0 -c:v libx264 -qp 0 -preset ultrafast Solvetic.mp4
Los parámetros son:
Podemos ver que al momento de ejecutar el comando se inicia el proceso de grabación de la pantalla, aunque no veamos nada en el escritorio. Para detener la grabación usaremos la tecla q. El proceso de funcionamiento de FFmpeg es el siguiente:
Cannot open display :0.0, error 1. :0.0: Input/output errorEn este caso, para su solución debemos ejecutar lo siguiente:
echo $DISPLAYEsto dará como resultado el número de pantalla a usar, 0 o 1, si es el número 1, basta con reemplazar el cero con uno así:
fmpeg -vídeo_size 1600x795 -framerate 30 -f x1grab -i :1 -c:v libx264 -qp 0 -preset ultrafast Solvetic.mp4
Una vez que se ha grabado el vídeo, podemos usar el comando ls para verlo allí almacenado:
Si deseamos ver las propiedades del vídeo ejecutaremos, en este caso, lo siguiente:
ffmpeg -i Solvetic.mp4
Podemos ver todos los detalles de este como:
- Duración
- Codificador
- Metadatos
- Frecuencia y más.
3. Grabar pantalla con FFmpeg y cámara web en Linux
Es posible que deseemos capturar el escritorio en FFmpeg y grabar desde nuestra cámara web al mismo tiempo. Para hacerlo, será necesario usar dos comandos por separado. El primer comando desplegara la cámara web activa conectada al equipo con Linux mientras que el segundo comando es la captura de pantalla en sí.
Ejecutamos lo siguiente:
ffplay -f vídeo4linux2 -i /dev/vídeo0 -vídeo_size 320x240 -fflags nobuffer
Esta línea desplegará una ventana con la cámara web prácticamente sin ninguna latencia en una resolución de pantalla de 320 × 240. Ahora, abrimos otra ventana del terminal y ejecutamos lo siguiente:
ffmpeg -f x11grab -r 30 -s cif -i :0.0 Solvetic.mp4
Con estas dos ventanas de la terminal ejecutándose, grabaremos el escritorio a 30 FPS y mostraremos la cámara web en tiempo real. Para finalizar el proceso usaremos las teclas siguientes:
Ctrl + Z
Así de simple, FFmpeg se convierte en una herramienta útil a la hora de grabar nuestra pantalla en Linux y poder usar el formato deseado con sencillez.