The Linux OS can do many things for you at no cost. Only thing is you should know what tool(an open source tool?) you should use. Creating gif files from a video file is not an exception for this. When I tried to explain about watch command which requires some video for that. But I felt youtube is blocked in most of the IT companies. So I came with a plan to convert the video file to a GIF image so that I can bypass firewalls. This post is all about it on how I achieved it.
Install ImageMagick and other tools in Linux ubuntu
Image magic will not work out of the box; we have to install Mplayer and gtk-recordmydesktop for that.
apt-get install imagemagick mplayer gtk-recordmydesktop
root@linuxnix:/home/surendra/Signed_Doc# apt-get install imagemagick mplayer gtk-recordmydesktop Reading package lists... Done Building dependency tree Reading state information... Done gtk-recordmydesktop is already the newest version (0.3.8-4.1ubuntu1). mplayer is already the newest version (2:1.2.1-1ubuntu1). The following packages were automatically installed and are no longer required: calibre-bin fonts-mathjax libbonoboui2-0 libbonoboui2-common libchm1 libclass-data-inheritable-perl libclass-method-modifiers-perl The following NEW packages will be installed: imagemagick The following packages will be upgraded: imagemagick-6.q16 1 upgraded, 1 newly installed, 0 to remove and 110 not upgraded. Need to get 432 kB of archives. After this operation, 151 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://in.archive.ubuntu.com/ubuntu xenial-updates/main amd64 imagemagick-6.q16 amd64 8:18.104.22.168-7ubuntu5.5 [388 kB] Get:2 http://in.archive.ubuntu.com/ubuntu xenial-updates/main amd64 imagemagick amd64 8:22.214.171.124-7ubuntu5.5 [44.9 kB] Fetched 432 kB in 2s (159 kB/s) (Reading database ... 498133 files and directories currently installed.) Preparing to unpack .../imagemagick-6.q16_8%3a126.96.36.199-7ubuntu5.5_amd64.deb ... Unpacking imagemagick-6.q16 (8:188.8.131.52-7ubuntu5.5) over (8:184.108.40.206-7ubuntu5.4) ... Selecting previously unselected package imagemagick. Preparing to unpack .../imagemagick_8%3a220.127.116.11-7ubuntu5.5_amd64.deb ... Unpacking imagemagick (8:18.104.22.168-7ubuntu5.5) ... Processing triggers for hicolor-icon-theme (0.15-0ubuntu1) ... Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ... lay) in auto mode update-alternatives: using /usr/bin/montage-im6 to provide /usr/bin/montage (montage) in auto mode update-alternatives: using /usr/bin/mogrify-im6 to provide /usr/bin/mogrify (mogrify) in auto mode
These are the required software which just got installed: ImageMagick, MPlayer and Desktop Recorder.
Use Desktop Recorder to capture a portion of the screen/application to use as the screencast. After the Desktop Recorder has saved the recording into an OGV video, MPlayer will be used to capture JPEG screenshots, saving them into the ‘output’ directory.
Convert video into jpeg image in Linux
The Mplayer is useful for converting video to jpeg images frame by frame.
mplayer -ao null <video file name> -vo jpeg:outdir=output
cd /home/surendra/videos mplayer -ao null abc.ogv -vo jpeg:outdir=output
-ao is to specify audio output drivers to be used. Here we used null which indicates use none for converting.
-vo is to determine video output as jpeg image files and save these files output folder.
Now our directory where jpegs are stored is “output.”
Use ImageMagick to convert the screenshots into animated gifs
convert output/* output.gif
We can optimize the screenshots using convert command
convert output.gif -fuzz 10% -layers Optimize optimised.gif
Hope this is helpful to you people. Please comment on this.
Latest posts by Surendra Anne (see all)
- Docker: How to copy files to/from docker container - June 30, 2020
Anisble: ERROR! unexpected parameter type in action:
Fix- June 29, 2020
- FREE: JOIN OUR DEVOPS TELEGRAM GROUPS - August 2, 2019
- Review: Whizlabs Practice Tests for AWS Certified Solutions Architect Professional (CSAP) - August 27, 2018
- How to use ohai/chef-shell to get node attributes - July 19, 2018