ychbn

Main | About | Contact | Archive

Запись действий с экрана в GIF на linux

Для записи происходящего на экране в изображение формата 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.

запись с окна emacs

comments powered byDisqus

Build with Jekyll and true minimal theme