Запись действий с экрана в GIF на linux
date: 2018-05-14 19:29:40 +0300
Для записи происходящего на экране в изображение формата gif на linux можно воспользоваться программой byzanz.
Проблема в том, что для записи с экрана `byzanz` принимает координаты X и Y, а также значения ширины и высоты области, с которой нужно производить захват.
Решить эту проблему помогает скрипт `byzanz-record-window.sh`.
Найти одну из его вариаций легко на гитхабе. Вот пример работающего скрипта:
#!/bin/bash # Delay before starting DELAY=10 # Sound notification to let one know when recording is about to start (and ends) beep() { paplay /usr/share/sounds/KDE-Im-Irc-Event.ogg & } # Duration and output file if [ $# -gt 0 ]; then D="--duration=$@" else echo Default recording duration 10s to /tmp/recorded.gif D="--duration=10 /tmp/recorded.gif" fi XWININFO=$(xwininfo) read X <<< $(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO") read Y <<< $(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO") read W <<< $(awk -F: '/Width/{print $2}' <<< "$XWININFO") read H <<< $(awk -F: '/Height/{print $2}' <<< "$XWININFO") echo X=$X echo Delaying $DELAY seconds. After that, byzanz will start for (( i=$DELAY; i>0; --i )) ; do echo $i sleep 1 done beep byzanz-record --verbose --delay=0 --x=$X --y=$Y --width=$W --height=$H $D beep
Чтобы записать все происходящее на экране, нужно сохранить данный скрипт под именем ```beyzanz-record-window.sh``` в домашнем каталоге, после чего выполнить команду
./beyzanz-record-window.xh 30 ~/record.gif
После ввода данной команды нужно будет щелкнуть мышкой по окну приложения, действия в котором нужно записать.
Скрипт начнет запись с задержкой в 10 секунд, после чего будет произведена запись продолжительностью в 30 секунд.
Результат будет сохранени в файле `~/record.gif`.
/posts/