Comment prendre une capture d'écran toutes les n secondes?


16

Quel logiciel puis-je utiliser pour prendre des captures d'écran avec un intervalle défini? Je voudrais prendre des captures d'écran toutes les 2 secondes environ. La ligne de commande et l'interface graphique sont toutes deux correctes.

Je préférerais un logiciel qui peut également redimensionner et compresser chaque capture d'écran.


2
Bonne chance pour espionner.
Oleh Prypin

Réponses:


19

Installez scrotpuis exécutez ceci:

while true; do scrot & sleep 2; done

cela ne prendrait-il pas 2 secondes + temps de scrot pour courir?
Seppo Erviälä

1
Cela semble prendre une capture d'écran toutes les 2,5 secondes sur mon système. J'aimerais quelque chose de plus précis.
Seppo Erviälä

7
@Seppo: utilisez while true; do scrot & sleep 2; done. Ça va en arrière-plan scrot(il exécute scrot, mais ne bloque pas jusqu'à ce que scrot soit terminé)
Lekensteyn

2
Merci Lekensteyn, j'ai édité ma réponse sur cette base. Je ne pensais pas que quelques millisecondes feraient une différence, mais cela prend 1/2 et prendrait encore plus de temps sur un disque plus lent. Il y a un risque ici que sur un disque très lent avec un intervalle de 2 secondes approprié, il écrive constamment sur le disque ou pire encore, il remplisse tous les tampons jusqu'à ce que le système s'arrête. @Seppo s'assure que tout ce que vous faites a suffisamment de temps pour écrire sur le disque.
Oli

7
watch -n2 scrot

ou

while true; do scrot -d2; done

2
while true; do import -window root /path/to/where/you/want/to/save/`date`.png; done

1
Vous devrez installer imagemagick pour que cela fonctionne. Vous pouvez ajouter une commande sleep au script pour lui faire prendre la capture d'écran toutes les 2 secondes, comme la question le demande.
Javier Rivera

1

Selon une modification de votre question:

import threading
    import os

    def capture(i):
        i += 1
        threading.Timer(2.0, capture, [i]).start()
        fill = str(i).zfill(5)
        os.system("scrot scrot-%s.jpg" % fill)
        os.system("streamer -o streamer-%s.jpeg -s 320x240 -j 100" % fill)

    capture(0)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.