Как создать анимированные GIF-изображения скринкаста?

В Настройках -> Мышь и сенсорная панель выберите вкладку Тема.

1
задан 3 September 2012 в 07:19

14 ответов

Лучшим программным обеспечением, которое когда-либо было для записи 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

253
ответ дан 25 May 2018 в 13:56
  • 1
    Спасибо, хороший инструмент! Цвета не всегда точны, но это мелочь. Я написал сценарий оболочки, который помогает с захватом окна (выбранным во время выполнения пользователем), размещенным в ответом ниже . – Rob W 14 October 2012 в 20:46
  • 2
    У Byzanz нет никакого пользовательского интерфейса! Предполагаю ли я угадывать x, y, ширину и высоту области, которую я хочу записать? Немного смешно, что в 2014 году мне все равно придется это делать. – Dan Dascalescu 4 November 2014 в 03:35
  • 3
    @DanDascalescu Никто не говорит, что вам нужно его использовать ... Я предпочитаю терминал, чем GUI, что с этим не так? – Bruno Pereira 4 November 2014 в 12:39
  • 4
    @DanDascalescu Не нужно гадать. Вы можете использовать xwininfo для получения свойств окна. – Marcus Møller 21 January 2015 в 16:53
  • 5
    Любой способ избежать необходимости знать продолжительность заранее? При записи я никогда не знаю заранее, сколько времени это займет. – Nicolas Raoul 9 June 2016 в 08:30

Сначала установите это:

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
233
ответ дан 25 May 2018 в 13:56
  • 1
    другим способом оптимизации gif является использование gifsicle: gifsicle -O in.gif -o out.gif Я просто попытался и получил 100-кратное уменьшение размера файла. – Yrogirg 29 March 2013 в 23:37
  • 2
    Для тех, кто задается вопросом, первым флагом в команде @Yrogirg является капитал «O», а не цифра «0». :) – brandizzi 9 January 2014 в 01:51
  • 3
    Ничего себе, gifsicle только сделал мой быстрее, но не меньше, и команда оптимизации конвертирования сделала его явно уродливым. – MalcolmOcean 25 May 2015 в 16:02
  • 4
    Я рекомендую объединить последние два шага convert в один: convert output/* -layers Optimize output.gif. Для меня это ускорило время обработки, а также уменьшило выходной файл. Я не вижу причин делать эти шаги отдельно. (Я не пробовал аргумент -fuzz 10%.) – thejoshwolfe 13 July 2015 в 21:31
  • 5
    Подобно @MalcolmOcean, оператор convert сделал его за пределами отвратительного. Согласно документам ( imagemagick.org/script/command-line-options.php#layers ), реализация optimize может меняться со временем. Но слегка улучшенная инструкция convert с флагом -coalesce улучшила ситуацию, но все же не до того места, где она была приемлема. В итоге мне пришлось использовать настройку -layers optimize-transparency для достижения наилучших результатов: convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif – ibgib 28 September 2016 в 02:47

Обзор

Этот ответ содержит три сценария оболочки:

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

byzanz-record-region

[[d]] d24] Зависимость: xrectsel от xrectsel. Выполните клонирование репозитория и запустите make, чтобы получить исполняемый файл. (Если он протестует, нет makefile, запустите ./bootstrap и ./configure перед запуском `make.

#!/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

Версия Gui byzanz-record-window

(комментарий 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"
134
ответ дан 25 May 2018 в 13:56
  • 1
    Являются ли эти скрипты такими, как github? Они очень полезны, было бы неплохо, если бы они были где-то лучше, чем текст в ответе StackOverflow. – KFro 4 July 2014 в 03:30
  • 2
    @KFro Это Ask Ubuntu, а не SO;) Нет, я не помещал их в репозиторий git, потому что сами скрипты плохо документированы (для пользователей). Сопроводительная документация включена в ответ, поэтому я не вижу преимущества разделения файлов и документации в репозитории Git. – Rob W 4 July 2014 в 12:43
  • 3
    Больше нет кредитов для редактирования, но сделано ;-). – Rmano 4 November 2014 в 20:15
  • 4
    Просто хотел сказать огромное спасибо за это - удивительный ответ и очень помог мне. Вот , в чем я оказался. Мне нравится использовать notify-send, если мой звук выключен. – Daniel Buckmaster 10 September 2015 в 05:20
  • 5
    @Masi Byzanz - и эти скрипты - отлично работают для меня в 16.04 – Jeff Puckett 12 August 2016 в 19:23

ffmpeg

Одним из лучших инструментов, которые я использую, является ffmpeg.

Установите это из программного центра - он будет автоматически установлен, если вы установите отличный пакет ubuntu-restricted-extras. [ ! d4]

Kazam может выводиться в видеоформатах mp4 или webm. Пример:

Пример синтаксиса GIF

Основной синтаксис для преобразования видео в 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

Примечание - это приблизительный размер выходного файла, поэтому размер может быть немного больше указанного.

size выходного видео

Используйте опцию -s [widthxheight]

, например ffmpeg -i Untitled_Screencast.webm -s 320x200 -pix_fmt rgb24 out.gif

Это уменьшило размер видео размером 1366x768 до 26Mb

loop forever

Иногда вам может понадобиться цикл 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
47
ответ дан 25 May 2018 в 13:56
  • 1
    Если у вас Docker и ваше видео demo.mkv, вы можете запустить следующие команды: docker run --rm -v $(pwd):/tmp/video/ jrottenberg/ffmpeg -i /tmp/video/demo.mkv -framerate 1/2 -pix_fmt rgb24 -loop 0 /tmp/video/demo.gif, sudo chown $USER:$USER demo.gif – czerasz 13 December 2015 в 04:35
  • 2
    Мне жалуется, что нет такого варианта, как -loop_output ... – Paranoid Panda 14 March 2016 в 20:52
  • 3
    +1 Лучший ответ. Но один q вы все еще думаете, что ubuntu-restricted-extras отлично? – Severus Tux 22 May 2016 в 17:48
  • 4
    @ParanoidPanda теперь опция -loop. Таким образом, это будет -loop 0. Вот рабочая команда в Ubuntu 16.04.01 ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif. +500,500 - это позиция X, Y, чтобы начать прямоугольник 100x100. xgrab отображает экран в качестве входного сигнала. – sanbor 11 August 2016 в 18:23

Silentcast

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.

33
ответ дан 25 May 2018 в 13:56
  • 1
    как только я нажму «Остановить», он сработает ... – Francisco Corrales Morales 18 November 2014 в 06:35
  • 2
    @FranciscoCorralesMorales Можете ли вы запустить его из командной строки, а затем попробовать? Как только он выйдет из строя, выйдите на выход и выгрузите его на paste.ubuntu.com и свяжите его здесь, чтобы я мог посмотреть. Благодаря! – Seth♦ 18 November 2014 в 06:35
  • 3
    использовал это, и он работал чудесно. благодаря! – JimB 27 April 2016 в 13:46
  • 4
    Это эпос. Большое спасибо! – simbabque 19 August 2016 в 11:27
  • 5
    Я могу подтвердить, что это отлично работает! Он создает очень маленький (650 КБ) .gif-файл с большим разрешением за пределами открытых окон, как показано в этом ответе: askubuntu.com/questions/882419/… Я мог бы добавить плакат @Seth отличный парень и помог мне в общем чат-зале АС настроить его :) – WinEunuuchs2Unix 12 February 2017 в 03:58

Существуют всевозможные сложные и хорошо работающие (предположительно) способы сделать это, перечисленные здесь. Тем не менее, я никогда не хотел проходить этот процесс до и после. Итак, я просто использую онлайн-конвертер, который мне подходит несколько раз, когда мне нужно это делать. Я использовал этот сайт:

http://ezgif.com/video-to-gif

Это не мой сайт, и я ни с кем не связан с ними. Они только в моих закладках, и их еще много.

7
ответ дан 25 May 2018 в 13:56
  • 1
    Мне это нравится. Я уже использую simplescreenrecorder для записи своего рабочего стола для youtube на случай, поэтому превращение mkv в gif было легко с этим. – isaaclw 7 July 2017 в 19:16

Я создал record-gif.sh улучшенную версию Rob W's byzanz-record-region:

Lame GUI для byzanz, улучшил работу с пользователем (выбираемая пользователем область, индикатор выполнения, способная запись).

record-gif.sh

установлен запись duration; установить save_as пункт назначения; выберите - с помощью мыши - область записи; создать сценарий для воспроизведения записи (см. $HOME/record.again).

Установить

Я также создал установочный скрипт

curl --location https://git.io/record-gif.sh | bash -
7
ответ дан 25 May 2018 в 13:56
  • 1
    Перед запуском этого сценария вам нужно выполнить sudo apt install autoconf byzanz. он не установлен по умолчанию в ubuntu – Crantisz 17 October 2016 в 10:50
  • 2
    @Crantisz спасибо, я обновил установочный скрипт, чтобы установить autoconf и byzanz. Не могли бы вы попробовать? – Édouard Lopez 17 October 2016 в 11:33
  • 3
    Я просто протестировал его на другом ПК. В моей обновленной системе ubuntu нет git. И я не знаю, почему, но сценарий останавливается сразу после второго вопроса с вопросом Y / N. Можете ли вы упаковать все зависимости в одну команду? – Crantisz 22 October 2016 в 00:17
  • 4
    @Crantisz - это скрипт установщика, если вы просто хотите record-gif.sh, вы можете получить его из репо – Édouard Lopez 24 October 2016 в 10:09
Установите эти 3 пакета: imagemagick mplayer gtk-recordmydesktop Запустите Desktop Recorder, чтобы захватить часть экрана / приложения для использования в качестве скринкаста. Загрузите ogv2gif.sh из https://github.com/nicolas-raoul / ogv2gif Run: ./ogv2gif.sh yourscreencast.ogv GIF-файл будет помещен в тот же каталог

, на 100% вызванный ответом maniat1k.

3
ответ дан 25 May 2018 в 13:56

Если вы хотите стать еще более привлекательным, вы можете использовать более сложный метод, чем анимированные gifs, используя HTMl5-скринкастинг. Проект x11-canvas-screencast создаст анимированный захват экрана html5.

Возможно, вы видели некоторые x11-canvas-screencast этой технологии на веб-сайте Sublime Text. x11-canvas-screencast делает этот метод еще одним шагом, включив отслеживание курсора мыши. Вот демонстрация того, что производит x11-canvas-screencast

. Результат лучше, чем анимированный gif, так как он не ограничивается количеством цветов, которое у него есть, и занимает меньше полосы пропускания.

2
ответ дан 25 May 2018 в 13:56
  • 1
    Это хорошо и все, кроме вас, вы не можете легко поделиться этим, например. Slack, Twitter и т. Д. – Elijah Lynn 11 August 2016 в 16:23
  • 2
    @ElijahLynn очень верно. Это решение оптимизировано для высокой частоты кадров, низкой пропускной способности, полной глубины цвета. Это не переносится (например, для встраивания в твиттер), поскольку для этого требуется javascript. – gene_wood 11 August 2016 в 20:15

Итак, чтобы захватить щелчки мыши, единственное, что я нашел, это 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

... и это выглядит примерно так:

screenkey

Обратите внимание, что key-mon --visible_click нарисовал бы круг вокруг указателя мыши при щелчке мыши - что я бы предпочел, но в Ubuntu 14.04.5 LTS это несколько сломано, так как этот круг не появляются и исчезают достаточно быстро, чтобы правильно проиллюстрировать щелчки (например, нажатия и отпускания мыши).

2
ответ дан 25 May 2018 в 13:56

Недавно я создал комбинированную версию скриптов, уже опубликованных здесь. В принципе, он позволяет записывать область экрана, но с простым графическим интерфейсом.

Спасибо за 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"
1
ответ дан 25 May 2018 в 13:56

Если вам также нужны видимые записи щелчков мышью или нажатия клавиш, тогда ваш экран лучше всего: https://github.com/wavexx/screenkey

1
ответ дан 25 May 2018 в 13:56
  • 1
    Я не вижу, как screenkey будет обрабатывать щелчки мыши (кажется, это только для указания клавиатуры), однако его README ссылается на key-mon, который может это сделать, см. Мой ответ ниже. – sdaau 24 August 2016 в 07:36

Используйте 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
0
ответ дан 25 May 2018 в 13:56

Я тестирую все вышеописанный метод, нашел самый простой:

использовать gtk-recordmydesktop и key-mon для получения ogv ffmpeg -i xx.ogv xx.gif & lt; - без каких-либо параметр.

fps является оригинальным, а размер gif меньше, чем файл ogv.

0
ответ дан 25 May 2018 в 13:56

Другие вопросы по тегам:

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