Jak zrobić zrzut ekranu co n sekund?


16

Jakiego oprogramowania mogę używać do robienia zrzutów ekranu z ustalonym interwałem? Chciałbym robić zrzuty ekranu co około 2 sekundy. Wiersz poleceń i GUI są w porządku.

Wolę oprogramowanie, które może również zmieniać rozmiar i kompresować każdy zrzut ekranu.


2
Powodzenia, szpiegostwo.
Oleh Prypin

Odpowiedzi:


20

Zainstaluj, scrota następnie uruchom to:

while true; do scrot & sleep 2; done

czy nie zajmie to 2 sekund + czasu, aby uruchomić scrot?
Seppo Erviälä

1
To wydaje się robić zrzut ekranu co 2,5 sekundy w moim systemie. Chciałbym coś bardziej precyzyjnego.
Seppo Erviälä

7
@ Seppo: użyj while true; do scrot & sleep 2; done. Będzie scrotdziałał (działa scrot, ale nie blokuje się, dopóki scrot nie zostanie zakończony)
Lekensteyn

2
Dzięki Lekensteyn, na tej podstawie zredagowałem swoją odpowiedź. Nie sądziłem, że kilka milisekund przyniesie różnicę, ale zajmuje 1/2, a na wolniejszym dysku potrwa jeszcze dłużej. Istnieje ryzyko, że na bardzo wolnym dysku z odpowiednią 2-sekundową przerwą będzie on ciągle zapisywał na dysk lub jeszcze gorzej, zapełniłby wszystkie bufory, aż system się zatrzyma. @ Seppo upewnij się, że wszystko, co robisz, ma wystarczająco dużo czasu, aby zapisać na dysk.
Oli


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

1
Aby to działało, musisz zainstalować imagemagick. Możesz dodać polecenie uśpienia do skryptu, aby wykonać zrzut ekranu co 2 sekundy, zgodnie z pytaniem.
Javier Rivera,

1

Zgodnie z edycją pytania:

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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.