Bagaimana cara mengambil tangkapan layar setiap n detik?

16

Perangkat lunak apa yang dapat saya gunakan untuk mengambil tangkapan layar dengan interval yang ditetapkan? Saya ingin mengambil tangkapan layar setiap 2 detik atau lebih. Baris perintah dan GUI keduanya ok.

Saya lebih suka perangkat lunak yang juga dapat mengubah ukuran dan mengkompres setiap tangkapan layar.

Seppo Erviälä
sumber
2
Semoga berhasil memata-matai.
Oleh Prypin

Jawaban:

19

Instal scrotdan jalankan ini:

while true; do scrot & sleep 2; done
Oli
sumber
bukankah membutuhkan waktu 2 detik + waktu scrot untuk berjalan?
Seppo Erviälä
1
Ini sepertinya mengambil tangkapan layar setiap 2,5 detik di sistem saya. Saya ingin sesuatu yang lebih tepat.
Seppo Erviälä
7
@Seppo: gunakan while true; do scrot & sleep 2; done. Ini akan menjadi latar belakang scrot(menjalankan scrot, tetapi tidak memblokir sampai scrot selesai)
Lekensteyn
2
Terima kasih Lekensteyn, saya mengedit jawaban saya berdasarkan itu. Saya tidak berpikir beberapa milidetik akan membuat perbedaan tetapi butuh 1/2 dan akan memakan waktu lebih lama pada disk yang lebih lambat. Ada risiko di sini bahwa pada disk yang sangat lambat dengan celah 2 detik yang tepat, itu akan terus-menerus menulis ke disk atau lebih buruk lagi, itu akan mengisi semua buffer sampai sistem terhenti. @Seppo memastikan apa pun yang Anda lakukan memiliki cukup waktu untuk menulis ke disk.
Oli
7
watch -n2 scrot

atau

while true; do scrot -d2; done
lukasz
sumber
2
while true; do import -window root /path/to/where/you/want/to/save/`date`.png; done
markuz
sumber
1
Anda harus memasang imagemagick agar ini berfungsi. Anda dapat menambahkan perintah sleep ke skrip untuk membuatnya mengambil screenshot setiap 2 detik, saat pertanyaan diajukan.
Javier Rivera
1

Sesuai hasil edit untuk pertanyaan Anda:

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)
jrg
sumber