How to Make Gif Animations from Screencasts on Ubuntu
Last updated:- 1) Install Kazam and Record Screencast
- 2) Install gifsicle
- 3) Install Gifify
- 4) Install ffmpeg
- 5) Install ImageMagick
- 6) Convert the mp4 video into a GIF file using Gifify
- Troubleshooting
Last tested on Ubuntu 20.04
TL;DR: 1) Record mp4 video with Kazam 2) Convert video to gif using Gifify
In order to make gif animations on Ubuntu, you need to first record a screencast (using Kazam) and then using Gifify to convert the video into a gif.
There as the steps:
1) Install Kazam and Record Screencast
Use a small frame-rate to keep file size small (10 is enough)
1) Install
$ sudo apt install kazam
2) Set frame-rate for screencassts in Kazam
smaller the gif file.
10 is enough.
2) Start recording a screencast
Click to start recording a screencast3) When finished, click the camcorder icon2 on the task bar:
Click the camcorder icon
when you're done recording4 Click again on Kazam to save if needed.
Open up the dialog and save
the video you just recorded.
2) Install gifsicle
Gifsicle is needed by gifify
$ git clone git@github.com:kohler/gifsicle.git
$ cd gifsicle
$ autoreconf -i
$ ./configure
$ make && sudo make install
3) Install Gifify
Install Gifify using npm1
$ sudo npm i gifify -g
I'm using version 2.4.3:
$ gifify --version
2.4.3
4) Install ffmpeg
Install the ffmpeg
package:
$ sudo apt install ffmpeg
5) Install ImageMagick
Install the imagemagick
package:
$ sudo apt install imagemagick
6) Convert the mp4 video into a GIF file using Gifify
This uses a lot of RAM, even for smallish video files.
Example: convert a file called video.mp4 to video.gif
There's all sorts of options to control the frame-rate and other things too.
$ gifify video.mp4 -o video.gif
Troubleshooting
convert-im6.q16: cache resources exhausted
This strategy is quite resource-intensive and the default memory limit is quite small (256MB)
As per this Github Issue, open up file /etc/ImageMagick-6/policy.xml
and change the line where it says 256MiB
(should be around line 60) and set it to something higher depending on your system resources, for example, 4GiB
as below.
<policy domain="resource" name="memory" value="4GiB"/>
Maximum call stack size exceeded
You forgot to install imagemagick
?
1: NPM stands for Node Package Manager. It's used to manage dependencies for NodeJS. You can install it on Ubuntu with $ sudo apt install npm
2: You can also stop the recording typing Super
+ Ctrl
+ f
. P.S.: Super
is the Windows logo key.