Set de script para capturar en video la pantalla de un device android y superar la limitacion de 3 minutos del adb screenrecord
El mundo Android para poder capturar en video la pantalla de un device desde linea de comandas se utiliza adb screenrecord este pose una limitacion de tiempo maxima de 3 minutos por lo que no sirve para el uso en un CI en donde el proceso a grabar exceda este tiempo.
Cuando me tope con esta limitación puse manos a la obra y arme este set de script en bash linux que nos permitira superarlo. Este se basa en el uso de la misma tool pero nos permite lograr tal fin.
La solución consta de 3 scripts, basados en Bash para Linux
recorder.sh
Este es el encargado de ejecutar el comando adb screenrecord
de manera continua e ir generando los archivos de vide, crearalos archivos temporales
pid.tmp
, recorder.tmp
, los videos seran guardados en el device en la carpeta /sdcard
con los nombre record_video_<number>counter.mp4
extract_videos.sh
Es el encargado de extraer los videos del device, creara una carpeta en la misma ubicacion del script llamada videos
.
Tambien es quien detendra la grabacion mediante
file_merger.sh
En base a los videos extraidos por el script previo, realizara un merge de todos los videos utilizando la tool ffmpeg
a un archivo final llamada output.mp4
Para comenzar una grabación en un CI por ejemplo el comando recorder.sh
debe ejecutarse en background ya que sino quedaria bloqueado el hilo de ejecución.
nohup sh recorder.sh &>/dev/null &
Cuando se dese detener la grabación y extraer los videos, deberemos ejecutar lo siguiente:
sh extract_videos.sh
sh file_merger.sh