Captures de pantalla a demanda
Per què hem triat ffmpeg per SSH per gravar pantalles i no OBS
Context
Necessitem gravar la pantalla dels equips clients de l’aula (Linux Debian) de forma remota des del servidor, sense que l’alumne hagi d’intervenir. Els equips estan gestionats amb Epoptes, que permet visualitzar i controlar pantalles en temps real però no té cap funcionalitat de gravació.
Triada
La solució escollida consisteix a llançar remotament, des del servidor, una ordre ffmpeg als clients mitjançant SSH. Ffmpeg captura el display gràfic del client (:0) i retorna el vídeo directament al servidor, on es desa amb el nom de l’equip i la data.
Els equips de l’aula segueixen un esquema d’adreces IP previsible: 172.24.X.11, on X identifica cada aula. Això permet escriure scripts que generen les IPs automàticament sense haver de escriure cada adreça a mà, evitant errors i estalviant temps de manteniment.
Per exemple, per a l’aula 3, el script sap que les IPs van de 172.24.3.11 fins a 172.24.3.40 i llança les gravacions en paral·lel sense cap configuració addicional:
for i in $(seq 11 40); do
./grabar_client.sh "172.24.3.$i" 600 "alumne_$i" &
done Per què no hem utilitzat OBS?
El nostre facilitador del grup va proposar OBS com a alternativa, i és una eina molt vàlida per a casos d’ús concrets, especialment per a streaming i gravació local amb interfície gràfica. Però en el nostre entorn té limitacions importants:
- Consum de recursos excessiu per a més de 30 equips simultanis OBS en mode normal consumeix al voltant de 300 MB de RAM per instància i utilitza acceleració gràfica. En equips d’aula, sovint amb recursos limitats, llançar OBS en 30 o 40 clients alhora generaria una càrrega inviable.
- Control remot complex Per controlar OBS remotament cal instal·lar i configurar el plugin
obs-websocket, gestionar autenticació i fer crides a una API. Ffmpeg, en canvi, s’executa amb una sola línia per SSH sense cap configuració prèvia al client més que tenir el paquet instal·lat. - OBS no és headless de forma nativa OBS necessita un entorn gràfic actiu o configuració addicional per funcionar en segon pla. Ffmpeg funciona directament sobre el display
:0sense cap dependència extra. - Manteniment i desplegament Instal·lar i mantenir OBS en més de 30 equips implica gestionar una aplicació pesada, actualitzacions, configuració de perfils i escenes. Ffmpeg és un paquet estàndard de Debian, lleuger i sense configuració persistent necessària.
Conclusió
Ffmpeg per SSH és la solució més adequada per al nostre entorn perquè és lleugera, no requereix cap agent instal·lat al client només el mateix paquet, s’integra perfectament amb l’esquema d’IPs de la xarxa i permet gravar qualsevol equip o tots alhora amb scripts simples. OBS és una gran eina però pensada per a un cas d’ús diferent: streaming i gravació local amb interfície gràfica, no per a gestió remota massiva en xarxes d’aula.