12.05.2015 11:47
OlegON
 
Возникла задача записать последовательность действий и как они выглядят на экране. Полез ковырять известную уже себе recordmydesktop и наткнулся при поиске опций на программу byzanz. Ключевое ее отличие и удобство в том, что она, среди прочего, может писать в GIF. Т.е. голова потом не болит о том, куда видео потом пристроить. В примере ниже не включил запись курсора мыши, но и это тоже можно сделать.



Собственно, если кому-то не хочется возиться с опциями, вот, готовые скрипты.

Для записи содержимого окна (им я и делал снимок выше)

Код:
#!/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 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
И для записи региона экрана
Код:
#!/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

# xrectsel from https://github.com/lolilolicon/xrectsel
ARGUMENTS=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1

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 ${ARGUMENTS} $D
beep
по умолчанию записывается весь экран. Кстати, достаточно скромно по ресурсам и итоговому файлу получается.
12.05.2015 11:58
OlegON
 
Вот, для примера с мышкой, размахивал наугад, не ищите смысл :)

13.05.2015 00:21
twix
 
В Cinnamon на Linux Mint 17.1 есть апплет Desktop Capture, который через гуи и хоткеи позволяет записывать скринкасты. На выбор есть: тот же Byzanz, ffmpeg, RecordMyDesktop и Cinnamon Capture (пишет в формат ). Без всяких шаманств с башовыми скриптами. (:

Правда, Byzanz (по крайней мере, запускаемый через этот аплет) как-то очень уж плохо обновляет картинку. Я, конечно, понимаю, что он пытается уменьшить размер, но всё же...

13.05.2015 08:10
OlegON
 
У меня шаманство - это когда оно работает как-то само по себе :) В htop том же можно посмотреть, с какими параметрами оно запускается. А Byzanz может и в webm писать и в ogg (со звуком).
Цитата:
Installed Packages
Name : byzanz
Arch : x86_64
Version : 0.3
Release : 0.14.fc21
у меня эта версия, если что.
13.05.2015 16:32
twix
 
Код:
twix@twixed ~ $ apt-cache show byzanz
Package: byzanz
Priority: optional
Section: universe/graphics
Installed-Size: 684
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists ubuntu com>
Original-Maintainer: Markus Koschany <apo@gambaru de>
Architecture: amd64
Version: 0.3.0+git20140123-1
Может, он с композитным режимом не корректно работает, или Cinnamon как-то по-своему отрисовку производит, не знаю. Но бизанз пишет очень плохо.
Попробовал вчера и RecordMyDesktop - выдаёт OGG видео хорошего качества со звуком, и не сильно грузит проц. У webm, записанного через Cinnamon Capture, фреймрейт чуть пониже, но результат (соотношение размер/качество) тоже очень неплохой.
13.05.2015 16:51
OlegON
 
У меня тоже композит... Но каких-то доводов цепляться за Bizanz не вижу, у меня он просто хорошо работает...
Часовой пояс GMT +3, время: 13:45.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.