Я видел анимированные GIF-изображения скриншотов (как показано ниже), которые несколько раз рекламировались на этом сайте как способ улучшить ответы.
Какой набор инструментов используется для их создания? Есть ли программа, которая делает это автоматически, или люди снимают скриншоты, преобразуют их в серию статических кадров, а затем создают изображения GIF?
screencast
andrewsomething
источник
источник
Ответы:
заглядывать
Это новое приложение, которое позволяет легко записывать GIF-файлы с экрана.
В любом случае, имейте в виду, что GIF имеют очень ограниченную цветовую палитру, поэтому их не очень хорошая идея.
Начиная с Ubuntu 18.10 вы можете установить Peek напрямую.
Для более старых версий Ubuntu вы можете установить последние версии Peek из PPA .
Найдите больше информации в репозитории GitHub .
источник
Byzanz
Лучшее программное обеспечение, которое я когда-либо нашел для записи GIF-скринкастов, - Byzanz.
Byzanz великолепен, потому что он записывает напрямую в GIF, качество и FPS впечатляют при сохранении размера файлов на минимальном уровне.
Монтаж
Визанц теперь доступен из репозитория вселенной:
использование
Когда он установлен, вы можете запустить его в терминале.
Это небольшой пример, который я только что сделал с
источник
xwininfo
чтобы получить свойства окна.Сначала установите это:
это необходимые вещи, ImageMagick, MPlayer и Desktop Recorder. Затем используйте Desktop Recorder для захвата части экрана / приложения для использования в качестве скринкаста. После того, как Desktop Recorder сохранит запись в видео OGV , MPlayer будет использоваться для захвата снимков экрана JPEG, сохраняя их в каталоге «output».
На терминале:
Используйте ImageMagick для преобразования скриншотов в анимированные GIF-изображения.
Вы можете оптимизировать скриншоты следующим образом:
источник
gifsicle -O in.gif -o out.gif
я только что попробовал и получил 100-кратное уменьшение размера файла.convert
шагов в один:convert output/* -layers Optimize output.gif
. Для меня это ускорило время обработки, а также уменьшило размер выходного файла. Я не вижу смысла делать эти шаги отдельно. (Я не пытался-fuzz 10%
спорить.)convert
заявление сделало его невероятным. Согласно документации ( imagemagick.org/script/command-line-options.php#layers ),optimize
реализация может со временем меняться. Но слегка подправленноеconvert
утверждение с-coalesce
флагом улучшило ситуацию, но все же не туда, где это было приемлемо. Мне пришлось использовать-layers optimize-transparency
настройку для достижения наилучших результатов:convert 'output/*.jpg' -coalesce -layers optimize-transparency optimised.gif
обзор
Этот ответ содержит три сценария оболочки:
byzanz-record-window
- выбрать окно для записи.byzanz-record-region
- Выбрать часть экрана для записи.Введение
Спасибо Бруно Перейра за то, что познакомил меня с
byzanz
! Это довольно полезно для создания GIF-анимации. В некоторых случаях цвета могут быть отключены, но размер файла компенсирует это. Пример: 40 секунд, 3,7 МБ .использование
Сохраните один / все следующие два сценария в папке внутри вашего
$PATH
. Вот пример использования первого скрипта для создания скринкаста определенного окна.byzanz-record-window 30 -c output.gif
$DELAY
), в течение которых вы готовитесь к записи.beep
функции)byzanz
начнется.30
в шаге 1),byzanz
заканчивается. Звуковой сигнал будет транслироваться снова.Я включил
-c
флаг,byzanz-record-window
чтобы проиллюстрировать, что любые аргументы к моему сценарию оболочки добавляются кbyzanz-record
себе.-c
Флаг указываетbyzanz
также включить курсор в скринкаст.Смотрите
man byzanz-record
илиbyzanz-record --help
для более подробной информации.byzanz-record-window
byzanz-record-region
Зависимость:
xrectsel
от xrectsel . Клонируйте репозиторий и запустите,make
чтобы получить исполняемый файл. (Если он протестует, что нет make-файла, запустите./bootstrap
и./configure
перед запуском `make).Gui версия
byzanz-record-window
(комментарий MHC ): я позволил себе изменить скрипт с помощью простого графического интерфейса
источник
notify-send
в случае, если мой звук выключен.FFmpeg
Один из лучших инструментов, которые я использую, это
ffmpeg
. Он может взять большую часть видео из инструмента скринкаста, например,kazam
и конвертировать его в другой формат.Установите его из софт-центра - он устанавливается автоматически, если вы устанавливаете отличный
ubuntu-restricted-extras
пакет.Kazam может выводить видео в форматах
mp4
илиwebm
. Как правило, вы получаете лучшие результаты вmp4
формате.пример GIF создания синтаксиса
Основной синтаксис для преобразования видео в GIF:
Конвертированные GIF-изображения - особенно те, у которых стандартный кадр 25/29 кадров в секунду, могут быть очень большими. Например, 15-секундное видео с разрешением 800 КБ и скоростью 25 кадров в секунду может выводить до 435 МБ!
Вы можете уменьшить это несколькими способами:
частота кадров
Используйте опцию
-r [frame-per-second]
например
ffmpeg -i Untitled_Screencast.webm -r 1 -pix_fmt rgb24 out.gif
Размер уменьшен с 435 Мб до 19 Мб
ограничение размера файла
Используйте опцию
-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 до 26 МБ
цикл навсегда
Иногда вы можете захотеть, чтобы GIF зациклился навсегда.
Используйте опцию
-loop_output 0
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -pix_fmt rgb24 out.gif
далее оптимизировать и уменьшить
если вы используете
imagemagick
convert
коэффициент размытия от 3% до 10%, то вы можете значительно уменьшить размер изображениянаконец-то
объедините некоторые из этих опций, чтобы уменьшить их до Ask Ubuntu.
ffmpeg -i Untitled_Screencast.webm -loop_output 0 -r 5 -s 320x200 -pix_fmt rgb24 out.gif
с последующим
источник
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
-loop_output
...ubuntu-restricted-extras
превосходным?-loop
. Так бы и было-loop 0
. Вот рабочая команда в Ubuntu 16.04.01ffmpeg -f x11grab -r 25 -s 100x100 -i :0.0+500,500 -pix_fmt rgb24 -loop 0 out2.gif
.+500,500
это позиция X, Y для начала прямоугольника 100x100.xgrab
принимает экран в качестве ввода.Silentcast
Silentcast - еще один замечательный графический инструмент для создания анимированных изображений .gif. Его функции включают в себя:
4 режима записи:
Весь экран
Внутреннее окно
Окно с отделкой
Пользовательский выбор
3 выходных формата:
.gif
.mp4
.webm
.png
(кадры).mkv
Установка не требуется (переносная)
Пользовательский рабочий каталог
Пользовательский FPS
Монтаж
Если вам нужна обычная установка и вы используете поддерживаемую версию Ubuntu, вы можете установить Silentcast с помощью PPA:
Если вы не используете поддерживаемую версию Ubuntu (вам действительно нужно обновить ее!), Вам необходимо загрузить последнюю версию со страницы GitHub и вручную удовлетворить зависимости (вы можете приобрести yad и ffmpeg отсюда и здесь соответственно здесь ) или, если вы используете чуть более свежую версию, такую как 13.10, вы можете попробовать загрузить .deb напрямую .
Если вы используете Gnome, вы можете установить расширение Topicons, чтобы упростить остановку Silentcast.
использование
Запустите Silentcast из графического интерфейса вашего рабочего стола или запустите
silentcast
команду в терминале. Выберите свои настройки и следуйте инструкциям на экране. Когда вы закончите запись, вам будет предложено диалоговое окно для оптимизации окончательного вывода путем удаления определенного количества кадров.Более подробные инструкции по использованию смотрите в README: онлайн-версии GitHub или локальной версии, хранящейся в
/usr/share/doc/silentcast
zless или в вашем любимом редакторе.Примечания:
Silentcast все еще находится в стадии разработки, и, хотя он достаточно стабилен, вы можете столкнуться с некоторыми ошибками. Пожалуйста, сообщите о них на трекере проблем GitHub проекта . Если у вас возникли проблемы с установкой из PPA и вы используете поддерживаемую версию Ubuntu, оставьте комментарий ниже или свяжитесь с сопровождающим (мной) на Launchpad.
источник
Есть все виды сложных и хорошо работающих (предположительно) способов сделать это, перечисленные здесь. Однако я никогда не хотел проходить этот процесс ни до, ни с тех пор. Итак, я просто использую онлайн-конвертер, который соответствует моим потребностям, когда мне это нужно. Я использовал этот сайт:
http://ezgif.com/video-to-gif
Это не мой сайт, и я никак не связан с ними. Они только одни в моих закладках, и их гораздо больше.
источник
Я создал
record-gif.sh
улучшенную версию Rob W'sbyzanz-record-region
:duration
;save_as
пункт назначения;$HOME/record.again
).устанавливать
Я также создал скрипт установки
источник
sudo apt install autoconf byzanz
перед запуском этого скрипта. он не установлен по умолчанию в Ubuntuautoconf
иbyzanz
. Не могли бы вы попробовать?imagemagick
mplayer
gtk-recordmydesktop
ogv2gif.sh
с https://github.com/nicolas-raoul/ogv2gif./ogv2gif.sh yourscreencast.ogv
100% вдохновлены ответом maniat1k .
источник
Если вы хотите стать еще более изящным, вы можете использовать более изощренный метод, чем анимированные GIF-файлы, используя показ холста HTMl5. Проект x11-canvas-screencast создаст анимированный снимок экрана html5 canvas.
Возможно, вы видели несколько известных примеров этой технологии на веб-сайте Sublime Text.
x11-canvas-screencast
продвигает этот метод на шаг вперед, включив отслеживание курсора мыши. Вот демонстрация того, что производит x11-canvas-screencastРезультат лучше, чем анимированный GIF, поскольку он не ограничен количеством цветов и требует меньше пропускной способности.
источник
Итак, для того, чтобы также захватывать щелчки мыши, единственное, что я нашел, было
key-mon
(через README ofscreenkey
):https://code.google.com/archive/p/key-monhttps://github.com/critiqjo/key-monsudo apt-get install key-mon
Затем я:
key-mon
xrectsel
чтобы получить координаты экрана, помещенные вbyzanz
командуbyzanz
команду... и это выглядит примерно так:
Обратите внимание, что
key-mon --visible_click
при наведении курсора мыши на окружность будет наведен круг, который я бы предпочел, но в Ubuntu 14.04.5 LTS это несколько ломается, поскольку этот круг не появляется и исчезает достаточно быстро, чтобы правильно проиллюстрировать щелчки (т.е. мыши нажимает и отпускает).источник
Я недавно создал комбинированную версию сценариев, уже размещенных здесь.
По сути, он позволяет записывать область экрана, но с простым графическим интерфейсом.
Спасибо за Роба W за предоставление этих классных сценариев
Вот код (или суть, если хотите):
источник
Если вам также нужны видимые записи щелчков мыши или нажатий клавиш, то вам лучше всего использовать screenkey: https://github.com/wavexx/screenkey
источник
screenkey
будет обрабатывать щелчки мыши (кажется, это только для индикации клавиатуры), однако, его README относится к тому,key-mon
что можно сделать, см. Мой ответ ниже.Используйте
gtk-recordmydesktop
иffmpeg
:apt-get install gtk-recordmydesktop ffmpeg
Запустите RecordMyDesktop, чтобы захватить часть экрана / приложения для использования в качестве экрана:
Создать
ogv2gif.sh
со следующим содержанием:Используй это :
Рекомендации :
источник
Я тестирую все вышеперечисленные методы, нашел самый простой:
fps является оригинальным, а размер gif меньше размера файла ogv.
источник