Я сделал запись терминала с помощью этого script
инструмента.
mediainfo video
General
Complete name : video
File size : 1.29 KiB
Я могу воспроизвести его с помощью scriptreplay
. Можно ли конвертировать его в GIF, например, с помощью ffmpeg
или другой программы?
Чтобы прояснить ситуацию, я имею в видуscript
из bsdutils
пакета, а не скрипт программы. Я думал, что сохраненный файл — это своего рода видео, поэтому я могу grep некоторые кадры/картинки и создать из них GIF.
Надеюсь, теперь стало понятнее.
решение1
Хороший вариант — использоватьttyrec
вместо того script
, чтобы записывать вашу терминальную активность и затем конвертировать ее в GIF с помощьюttygif
.
Установите пакеты
ttyrec
иttygif
:sudo apt install ttyrec ttygif
Откройте терминал и начните
ttyrec
записывать свой терминал:ttyrec
Запуск
ttyrec
без аргумента сохранит запись в файле с именемttyrecord
в текущей папке. Вы можете указать имя файла в качестве аргумента, чтобы сохранить файл с этим именем.Используйте свой терминал.
Нажмите Ctrl+, Dчтобы остановить запись.
Чтобы преобразовать запись в GIF, выполните:
ttygif ttyrecord
Если вы сохранили запись под другим именем файла, измените
ttyrecord
имя файла на то, которое вы использовали.Эта команда сохранит запись в формате GIF с именем
tty.gif
.
Вот GIF-файл, созданный мной с помощью вышеуказанной процедуры, который содержит указанную выше процедуру:
Примечания
Если вы получили эту ошибку при запуске
ttygif
:Error: WINDOWID environment variable was empty
Перед запуском необходимо выполнить следующую команду
ttygif
:export WINDOWID=$(xdotool getwindowfocus)
Для команды выше требуется
xdotool
. Вы можете установить его с помощью:sudo apt install xdotool
ttygif
не работает с qterminal по какой-то причине. Используйте другой терминал для преобразования.Я подтвердил, что он отлично работает с kitty, медленно работает с терминалом GNOME и очень быстро работает с XTerm.
Команда
ttygif
может создавать каталоги большого размера в/tmp
. Я рекомендую удалить их вручную после преобразования с помощью:rm -r /tmp/ttygif.*