हर 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.