В Настройках -> Мышь и сенсорная панель выберите вкладку Тема.
Лучшим программным обеспечением, которое когда-либо было для записи GIF-скринкастов, является Byzanz.
Byzanz отлично, потому что он записывает непосредственно в GIF, качество и FPS впечатляет, сохраняя размер файлов до минимального. [ ! d1]
Теперь Byzanz доступен из репозитория юниверса:
sudo apt-get install byzanz
Когда он установлен, вы можете запустить его в терминал
Это небольшой пример, который я сделал сейчас с
byzanz-record --duration=15 --x=200 --y=300 --width=700 --height=400 out.gif
Сначала установите это:
sudo apt-get install imagemagick mplayer gtk-recordmydesktop
это необходимые материалы, ImageMagick, MPlayer и Desktop Recorder. Затем используйте Desktop Recorder для захвата части экрана / приложения для использования в качестве скринкаста. После того, как Desktop Recorder сохранил запись в видео OGV, MPlayer будет использоваться для захвата снимков в формате JPEG, сохраняя их в каталоге «output».
На терминале:
mplayer -ao null <video file name> -vo jpeg:outdir=output
Используйте Desktop Recorder для преобразования скриншотов в анимированные gif.
convert output/* output.gif
вы можете оптимизировать скриншоты следующим образом:
convert output.gif -fuzz 10% -layers Optimize optimised.gif
Этот ответ содержит три сценария оболочки:
byzanz-record-window - выбор окна для записи. byzanz-record-region - выбор части экрана для записи. Простой интерфейс GUI для 1, MHC.Спасибо Бруно Перейра за то, что вы познакомили меня с byzanz! Это очень полезно для создания анимации GIF. Цвета могут быть отключены в некоторых случаях, но размер файла компенсирует это. Пример: 40 секунд, 3,7 МБ
Сохраните один или все из следующих двух сценариев в папке внутри вашего $PATH. Вот пример использования первого скрипта для создания скринкаста определенного окна.
byzanz-record-window - выбор окна для записи. Перейти в окно (alt-tab ) вы хотите захватить. Нажмите здесь. byzanz-record-region - выбор части экрана для записи. После звукового сигнала (определенного в функции beep), запускается byzanz. Простой интерфейс GUI для 1, по MHC.Я включил флаг -c в byzanz-record-window, чтобы проиллюстрировать, что любые аргументы моего сценария оболочки добавлены к [ f16]. Флаг -c сообщает byzanz также включать курсор в скринкаст.
#!/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
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
(комментарий xrectsel ): Я взял на себя смелость изменить скрипт с помощью простого графического интерфейса диалог
#!/bin/bash
# AUTHOR: (c) Rob W 2012, modified by MHC (https://askubuntu.com/users/81372/mhc)
# NAME: GIFRecord 0.1
# DESCRIPTION: A script to record GIF screencasts.
# LICENSE: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# DEPENDENCIES: byzanz,gdialog,notify-send (install via sudo add-apt-repository ppa:fossfreedom/byzanz; sudo apt-get update && sudo apt-get install byzanz gdialog notify-osd)
# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")
# Delay before starting
DELAY=10
# Standard screencast folder
FOLDER="$HOME/Pictures"
# Default recording duration
DEFDUR=10
# Sound notification to let one know when recording is about to start (and ends)
beep() {
paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}
# Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)
# Duration and output file
if [ $USERDUR -gt 0 ]; then
D=$USERDUR
else
D=$DEFDUR
fi
# Window geometry
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")
# Notify the user of recording time and delay
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."
#Actual recording
sleep $DELAY
beep
byzanz-record -c --verbose --delay=0 --duration=$D --x=$X --y=$Y --width=$W --height=$H "$FOLDER/GIFrecord_$TIME.gif"
beep
# Notify the user of end of recording.
notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$TIME.gif"
Одним из лучших инструментов, которые я использую, является ffmpeg.
Установите это из программного центра - он будет автоматически установлен, если вы установите отличный пакет ubuntu-restricted-extras. [ ! d4]
Kazam может выводиться в видеоформатах mp4 или webm. Пример:
Основной синтаксис для преобразования видео в gif:
ffmpeg -i [inputvideo_filename] -pix_fmt rgb24 [output.gif]
Конвертируемые GIF-файлы, особенно со стандартным 25/29 кадрами в секунду, могут быть очень большими. Например, веб-трафик 800Kb с 15-секундным видео с частотой 25 кадров в секунду может выводить на 435Mb!
Вы можете уменьшить это несколькими способами:
Использовать опция -r [frame-per-second]
, например ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Размер уменьшен с 435Mb до 19Mb
Использовать опция -fs [filesize]
например ffmpeg -i Untitled_Screencast.webm -fs 5000k -pix_fmt rgb24 out.gif
Примечание - это приблизительный размер выходного файла, поэтому размер может быть немного больше указанного.
Используйте опцию -s [widthxheight]
, например ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif
Это уменьшило размер видео размером 1366x768 до 26Mb
Иногда вам может понадобиться цикл GIF навсегда.
Используйте опцию -loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
[d27 ] далее оптимизируйте и уменьшите, если вы используете imagemagick convert с коэффициентом fuzz от 3% до 10%, тогда вы можете значительно уменьшить размер изображения
convert output.gif -fuzz 3% -layers Optimize finalgif.gif
объединить некоторые из этих вариантов, чтобы свести к чему-то управляемому
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
, а затем
convert output.gif -fuzz 8% -layers Optimize finalgif.gif
example Silentcast - еще один отличный инструмент для создания анимированных изображений .gif. Его функции включают в себя:
4 режима записи: весь экран Внутреннее окно Окно с декором Пользовательский выбор 3 выходных формата: .gif .mp4 .webm .png (фреймы) .mkv Не требуется установка ( портативный) Пользовательский рабочий каталог Пользовательский fpsЕсли вы хотите регулярно устанавливать и используете поддерживаемую версию Ubuntu, вы можете установить Silentcast по PPA:
sudo add-apt-repository ppa:sethj/silentcast
sudo apt-get update
sudo apt-get install silentcast
Если вы не используете поддерживаемую версию Ubuntu (вам действительно нужно обновить!), вам нужно будет загрузить последнюю версию с страницы GitHub и вручную удовлетворить зависимости (вы можете приобрести yad и ffmpeg здесь и здесь соответственно ) или, если вы используете немного более новую версию, например 13.10, вы можете попробовать загрузить .deb напрямую.
Если вы используете Gnome, вы можете установить со страницы GitHub , чтобы упростить остановку Silentcast.
Запустите Silentcast из gui рабочего стола или запустите команду silentcast в терминале. Выберите свои настройки и следуйте инструкциям на экране. Когда вы закончите запись, вам будет представлено диалоговое окно для оптимизации окончательного вывода путем удаления определенного количества кадров.
Для более глубоких рекомендаций по использованию взгляните на README, версию онлайн-версии GitHub или локальную версию, хранящуюся в /usr/share/doc/silentcast, с помощью zless или вашего любимого редактора.
Silentcast все еще находится на стадии разработки, и хотя он довольно стабилен, вы можете столкнуться с некоторыми ошибками. Если вы сообщите об этом онлайн версии GitHub . Если у вас возникли проблемы с установкой из PPA и запущена поддерживаемая версия Ubuntu, оставляйте комментарий ниже или здесь (me) на Launchpad.
Существуют всевозможные сложные и хорошо работающие (предположительно) способы сделать это, перечисленные здесь. Тем не менее, я никогда не хотел проходить этот процесс до и после. Итак, я просто использую онлайн-конвертер, который мне подходит несколько раз, когда мне нужно это делать. Я использовал этот сайт:
http://ezgif.com/video-to-gif
Это не мой сайт, и я ни с кем не связан с ними. Они только в моих закладках, и их еще много.
Я создал record-gif.sh улучшенную версию Rob W's byzanz-record-region:
Lame GUI для byzanz, улучшил работу с пользователем (выбираемая пользователем область, индикатор выполнения, способная запись). установлен запись duration; установить save_as пункт назначения; выберите - с помощью мыши - область записи; создать сценарий для воспроизведения записи (см. $HOME/record.again).Я также создал установочный скрипт
curl --location https://git.io/record-gif.sh | bash -
, на 100% вызванный ответом maniat1k.
Если вы хотите стать еще более привлекательным, вы можете использовать более сложный метод, чем анимированные gifs, используя HTMl5-скринкастинг. Проект x11-canvas-screencast создаст анимированный захват экрана html5.
Возможно, вы видели некоторые x11-canvas-screencast этой технологии на веб-сайте Sublime Text. x11-canvas-screencast делает этот метод еще одним шагом, включив отслеживание курсора мыши. Вот демонстрация того, что производит x11-canvas-screencast
. Результат лучше, чем анимированный gif, так как он не ограничивается количеством цветов, которое у него есть, и занимает меньше полосы пропускания.
Итак, чтобы захватить щелчки мыши, единственное, что я нашел, это key-mon (через README из screenkey):
https://code.google.com/ archive / p / key-mon https://github.com/critiqjo/key-mon sudo apt-get install key-monЗатем I:
https://code.google .com / archive / p / key-mon https://github.com/critiqjo/key-mon Используйте https://github.com/critiqjo/key-mon , чтобы получить координаты экрана помещаются в команду byzanz sudo apt-get install key-mon... и это выглядит примерно так:
Обратите внимание, что key-mon --visible_click нарисовал бы круг вокруг указателя мыши при щелчке мыши - что я бы предпочел, но в Ubuntu 14.04.5 LTS это несколько сломано, так как этот круг не появляются и исчезают достаточно быстро, чтобы правильно проиллюстрировать щелчки (например, нажатия и отпускания мыши).
Недавно я создал комбинированную версию скриптов, уже опубликованных здесь. В принципе, он позволяет записывать область экрана, но с простым графическим интерфейсом.
Спасибо за Rob W за предоставление этих классных скриптов
Вот код (или gist, если хотите): [ ! d6]
#!/bin/bash
#Records selected screen region, with GUI
#This is combined version of GIF recording scripts, that can be found here: https://askubuntu.com/questions/107726/how-to-create-animated-gif-images-of-a-screencast
#Thanks to Rob W, and the other author (unmentioned), for creating this lovely scripts
#I do not own any rights to code I didn't write
# ~Jacajack
DELAY=5 #Delay before starting
DEFDUR=10 #Default recording duration
TIME=$(date +"%Y-%m-%d_%H%M%S") #Timestamp
FOLDER="$HOME/Pictures/Byzanz" #Default output directory
#Sound notification to let one know when recording is about to start (and ends)
beep() {
paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}
#Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)
#Duration and output file
if [ $USERDUR -gt 0 ]; then
D=$USERDUR
else
D=$DEFDUR
fi
#Get coordinates using xrectsel from https://github.com/lolilolicon/xrectsel
REGION=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."
for (( i=$DELAY; i>0; --i )) ; do
sleep 1
done
#Record
beep
byzanz-record --cursor --verbose --delay=0 ${REGION} --duration=$D "$FOLDER/byzanz-record-region-$TIME.gif"
beep
notify-send "GIFRecorder" "Screencast saved to $FOLDER/byzanz-record-region-$TIME.gif"
Если вам также нужны видимые записи щелчков мышью или нажатия клавиш, тогда ваш экран лучше всего: https://github.com/wavexx/screenkey
Используйте gtk-recordmydesktop и ffmpeg:
apt-get install gtk-recordmydesktop ffmpeg
Запустите RecordMyDesktop, чтобы захватить часть экрана / приложения для использования в качестве скринкаста:
[ f1]Создайте ogv2gif.sh со следующим содержимым:
INPUT_FILE=$1
FPS=15
WIDTH=320
TEMP_FILE_PATH="~/tmp.png"
ffmpeg -i $INPUT_FILE -vf fps=$FPS,scale=$WIDTH:-1:flags=lanczos,palettegen $TEMP_FILE_PATH
ffmpeg -i $INPUT_FILE -i $TEMP_FILE_PATH -loop 0 -filter_complex "fps=$FPS,scale=$WIDTH:-1:flags=lanczos[x];[x][1:v]paletteuse" $INPUT_FILE.gif
rm $TEMP_FILE_PATH
Используйте его:
./ogv2gif.sh yourscreencast.ogv
Ссылки:
https: // gist .github.com / fedir / 56aeddde59571402a0d94f78eb6c7a5c https://unix.stackexchange.com/questions/35282/convert-ogv-video-to-gif-animationЯ тестирую все вышеописанный метод, нашел самый простой:
использовать gtk-recordmydesktop и key-mon для получения ogv ffmpeg -i xx.ogv xx.gif & lt; - без каких-либо параметр.fps является оригинальным, а размер gif меньше, чем файл ogv.