如何每n秒拍摄一次屏幕截图?


Answers:


19

安装scrot并运行此命令:

while true; do scrot & sleep 2; done

那不会花2秒+时间运行scrot吗?
SeppoErviälä11年

1
这似乎在我的系统上每2.5秒拍摄一次屏幕截图。我想要更精确的东西。
SeppoErviälä11年

7
@Seppo:使用while true; do scrot & sleep 2; done。它会scrot变成背景(运行scrot,但直到scrot完成后才阻塞)
Lekensteyn 2011年

2
感谢Lekensteyn,我据此编辑了答案。我不认为几毫秒会有所不同,但是它需要1/2的时间,而在较慢的磁盘上则需要更长的时间。此处存在这样的风险:在非常慢的磁盘(具有适当的2秒间隔)上,它将不断地写入磁盘,或者更糟的是,它将填满所有缓冲区,直到系统停止运行为止。@Seppo确保您所做的任何事情都有足够的时间写入磁盘。
奥利(Oli)


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

1
您需要安装imagemagick才能正常工作。您可以向脚本中添加一个sleep命令,以使其按问题要求每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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.