engine9
@engine9
Разрабатываю интерфейсы и трехмерные презентации.

Как снимать скриншоты в linux через интервал?

Друзья, прошу помощи. Вопрос простой, но мне пару дней придётся ковыряться.

Задача: мне нужно снимать скриншоты процесса работы над 3Д моделью в программе blender. Примерно таким образом:
Захожу в консоль, набираю "screencast-start" и у меня записывается раз в минуту содержимое экрана в *.png в определенную папку.

Когда требуется остановить, то пишу другую команду, например "screencast-stop". Алиасы делать умею, прописать пути не проблема, разберусь.

Вангую, что это можно решить при помощи обычного imagemagick + cron, но я никогда не работал с ними, а разбираться придётся долго, т.к. я не программист, а дизайнер.

Мне очень важно, чтобы была возможность указать этой программе чтобы снимала первый монитор, у меня их два. И возможность настроить время между "снимками", т.к. пока не уверен хватит ли минуты, может придётся другой интервал выбирать.

Очень надеюсь на вашу помощь. Спасибо!
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
@brar
ffmpeg -thread_queue_size 512 -video_size 1920x1080 -framerate 30 -f x11grab -i :0.0 /home/username/screencasts/$(date +%Hh_%Mm_%Ss_%d_%B_%Y).mp4

ffmpeg и x11grab соотвественно должны быть установлены в системе. framerate можно сделать и 60 (это fps). Разрешение скринкаста тоже. Останавливать ctrl+c.
Можно это конечно добавить в кронтаб и настроить под свою DM shortcuts/hotkeys для останова записи. Но чревато забыть, что запущена запись, не убить процесс и он забъет всё свободное место на диске, со всеми вытекающими (вплоть до фэйла при перезагрузке, если и /home на одном логическом диске c ОС, например).

Сорян, только потом внимательнее прочитал, что нужны скриншоты, а не видосы.
Тогда в сторону maim.
В i3wm я это делал так:
bindsym --release Print exec --no-startup-id "maim -s -c 1,0,0,0.6 ~/Screenshots/$(date +%Hh_%Mm_%Ss_%d_%B_%Y).png"

Это сфотает весь монитор.

В вот так предложит выделить область для скриншота:
bindsym --release $mod+Print exec --no-startup-id "maim -i $(xdotool getactivewindow) ~/Screenshots/$(date +%Hh_%Mm_%Ss_%d_%B_%Y).png"


Ну а интервал запуска вышеуказанных конструкций maim воткнуть через "crontab -e".
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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