Как сделать снимок экрана каждую секунду?

Какое программное обеспечение можно использовать для скриншотов с заданным интервалом? Я бы хотел сделать скриншоты каждые 2 секунды или около того. Командная строка и графический интерфейс хорошо.

Я бы предпочел программное обеспечение, которое также может изменять размер и сжимать каждый снимок экрана.

16
задан 7 January 2012 в 20:57

4 ответа

Установите scrot, а затем запустите это:

while true; do scrot & sleep 2; done
16
ответ дан 25 May 2018 в 20:03
  • 1
    не будет ли это занимать 2 секунды + время, которое нужно предпринять, чтобы бежать? – Seppo Erviälä 28 June 2011 в 21:31
  • 2
    Кажется, это занимает скриншот каждые 2,5 секунды в моей системе. Мне нужно что-то более точное. – Seppo Erviälä 28 June 2011 в 21:37
  • 3
    @Seppo: используйте while true; do scrot & sleep 2; done. Это будет фоном scrot (он запускает скот, но не блокируется до тех пор, пока не будет сделана скотина) – Lekensteyn 28 June 2011 в 21:50
  • 4
    @Lekensteyn Спасибо, это то, что мне нужно. – Seppo Erviälä 28 June 2011 в 23:02
  • 5
    Благодаря Лекенштейну, я отредактировал свой ответ на основе этого. Я не думал, что несколько миллисекунд будут иметь значение, но он занимает 1/2 и займет еще больше времени на более медленном диске. Здесь существует риск, что на очень медленном диске с надлежащим 2-секундным промежутком он будет постоянно записываться на диск или еще хуже, он заполнит все буферы, пока система не остановится. @Seppo убедитесь, что все, что вы делаете, имеет достаточно времени для записи на диск. – Oli♦ 29 June 2011 в 02:15
watch -n2 scrot

или

while true; do scrot -d2; done
4
ответ дан 25 May 2018 в 20:03
[F1]
2
ответ дан 25 May 2018 в 20:03
  • 1
    Для этого вам нужно будет установить imagemagick. Вы можете добавить команду спящего режима в сценарий, чтобы сделать снимок экрана каждые 2 секунды, как задает вопрос. – Javier Rivera 13 September 2011 в 21:40

Согласно редактированию на ваш вопрос:

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)
1
ответ дан 25 May 2018 в 20:03

Другие вопросы по тегам:

Похожие вопросы: