हर n सेकंड में स्क्रीनशॉट कैसे लें?


17

एक सेट अंतराल के साथ स्क्रीनशॉट लेने के लिए मैं किस सॉफ्टवेयर का उपयोग कर सकता हूं? मैं हर 2 सेकंड में स्क्रीनशॉट लेना चाहूंगा। कमांड-लाइन और GUI दोनों ठीक हैं।

मैं ऐसा सॉफ्टवेयर पसंद करूंगा जो प्रत्येक स्क्रीनशॉट को आकार और संपीड़ित कर सके।


2
गुड लक जासूसी।
ओलेह प्रिंपीं

जवाबों:


20

इसे स्थापित करें scrotऔर फिर चलाएं:

while true; do scrot & sleep 2; done

जो 2 सेकंड नहीं लेगा + समय स्क्रोट को चलाने के लिए लेता है?
सेप्पो एरविला

1
यह मेरे सिस्टम पर हर 2,5 सेकंड में एक स्क्रीनशॉट लगता है। मुझे कुछ और सटीक चाहिए।
सेप्पो एरविला

7
@Seppo: उपयोग करें while true; do scrot & sleep 2; done। यह पृष्ठभूमि scrot(यह स्क्रोट चलाता है, लेकिन जब तक स्क्रोट नहीं किया जाता है तब तक ब्लॉक नहीं होता है)
Lekensteyn

2
धन्यवाद Lekensteyn, मैंने उसी के आधार पर अपना उत्तर संपादित किया। मुझे नहीं लगता था कि कुछ मिलीसेकंड में कोई फर्क पड़ेगा लेकिन इसमें 1/2 लगेगा और धीमी डिस्क पर भी अधिक समय लगेगा। यहाँ एक जोखिम यह है कि एक बहुत ही धीमी डिस्क पर 2-सेकंड के अंतराल के साथ, यह लगातार डिस्क या इससे भी बदतर लिख रहा होगा, यह सिस्टम बफ़र तक सभी बफ़र्स को भर देगा। @Seppo सुनिश्चित करें कि आप जो भी कर रहे हैं उसके पास डिस्क पर लिखने के लिए पर्याप्त समय है।
ओली

जब स्क्रोट एक स्क्रीनशॉट लेता है, तो इसकी ध्वनि बीब, यह कैसे चुप है?
तियानी


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

1
काम करने के लिए आपको इमेजमैगिक इंस्टॉल करना होगा। आप स्क्रिप्ट को एक स्लीप कमांड जोड़ सकते हैं ताकि यह स्क्रीन-शॉट को हर 2 सेकंड में ले सके, जैसा कि सवाल पूछता है।
जेवियर रिवेरा

1

अपने प्रश्न के संपादन के अनुसार:

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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.