If you take the word GIF and add the letter T in front of it as an extension, it sounds like a GIFT that keeps on giving. It is only a gift if you know how to create and implement one in various user-based circumstances. If you master the simple technicalities behind its creation and application, you immediately become the go-to guru for anything related to GIFs within your active community forums or social media platforms.
You do not need a formal definition of the word GIF to relate to it. Your activeness and continuous interaction in many social platforms and community forums must have triggered an idea about it. The popularity of GIFs on the world wide web (www) is so broad that completely removing it will make the Internet’s definition incomplete.
So How Do You Define a GIF File?
The simplest way to understand a GIF file is to look at a PNG or JPEG file format. It is an ordinary image file that can be extraordinary if you want it to be. The same way you can create and save a still image file with a .jpeg or .png extension is how you can make a still image file with a .gif extension. What PNG and JPEG can do, GIF can do better. Because of this latter statement, GIF mostly leaves the popularity of making still images to the expertise of PNG and JPEG file formats. GIF’s extraordinary superpower is creating still images and then adding some motioned animation to it.
Be careful not to confuse this animation trait on a GIF image file to a trimmed and repetitively looped video file. For starters, a GIF image file is animated without sound. Another simple way to relate to a GIF image file is to look at it the same way you look at a flipbook. It simply takes an image and puts it in motion.
An interesting factor about creating GIFs is that they were not intended for purely animating images. It is an invention that took a different path to a different destiny. The developers of GIFs saw it as an image file format that can hold more than one image simultaneously. Also, since the loading sequence of the GIF pictures or images was similar to a flipbook, this invention could be flexibly decoded to meet specific objectives.
GIFs’ Popularity Track Record
The popularity of GIFs puts them on the same track record as memes. Their usefulness is not limited to relaying jokes alone but also ideas and emotions. There are plenty of online GIF makers that help you create and share GIFs. But this article’s objective is not after the web-based GIF makers. It intends to consider useful GIF maker apps for Linux platforms because, with apps, you have full control of your projects and won’t have to rely on the stability of an internet connection to access and further edit or use your GIF projects.
You might need the flexibility of GIF web services when you want to integrate your GIF masterpiece to your web-based apps; if you have one hosted on the internet.
In terms of GIF’s popularity track record, there is a reason why it has stuck around for so long despite the efforts of many thought-to-be worthy heirs’ attempt to dethrone it. The GIF file format might seem outdated because of its 8-bit trait. This trait implies that it is restricted to 256 colors, making it unworthy in the eyes of other image formats. Another downside to the GIFs’ file formats applicability is their lack of support for semi-transparency. Also, because of its uncompressed state, the JPEG or PNG file formats might brag about how they work with small file size formats compared to the ones under GIF.
These few downsides to GIFs have nothing compared to the huge advantages that might be responsible for their weighty status. The most common ones are the following:
Dynamic Web Browser Support:
The uniqueness of web browsers on the internet is defined through their quirks. This peculiar web browser character makes it uniquely applicable and flexible to many web-based apps and file formats. A good example of a file format that has been a headache to browser support is Mozilla’s APNG file format. Despite its launch in 2008, it is only recently that the Microsoft Edge browser could accommodate it.
We might not be sure about a similar testimony from other popular web browsers, but there has to be some that can relate to the frustration. This testament does not apply to the GIF file format. GIF would be a friend to all web browsers unless a web browser were solely developed to quarantine or make it obsolete, an effort that continues to be unsuccessful since time immemorial.
GIFs Helped HTML Remain Relevant:
Before the HyperText Markup Language (HTML) got an upgrade to HTML5 in 2014, it did not have any viable support for integrating video file formats. GIF stepped in because of its flexibility in creating and sharing its file format. It stalled web users from frustrations while the creation of HTML5 was underway.
Anyone Can Make GIFs:
There are countless GIF-making apps and websites around that are adaptable to anyone’s user experience. From a toddler to a granny, your GIF career is still relevant if you have the heart for it.
10 GIFs Maker Apps for Your Personal or Project Use
The fun of creating and using GIFs is not just limited to social media platforms and personalized or enterprise-oriented blog sites. You can use the stretch of your imagination to figure out how best to apply GIFs in your personal or professional life. For instance, GIFs can be handy in creating an engaging atmosphere when implemented in game development and software documentation scenarios.
The preferred atmosphere for working on such projects requires that your GIF creation pursuit is under the comfort of offline Desktop apps. The Linux GIF-making apps we will review will bring you closer to achieving this objective. The GIFs app reviews listed here consist of ones that directly record a GIF from Linux users’ live interactive sessions on their machine and ones that use an already existing video file to generate or convert the needed GIF animation.
This GIF maker app exists as a command-line utility. It can flexibly record and convert GIF files from video and audio streams. The command-line switches that make it feature-rich in its performance are configurable to each user’s preferred GIF output.
The following command easily installs the FFmpeg GIF maker on an Ubuntu distro machine.
$ sudo apt install ffmpeg
For this video-to-GIF file conversion through FFmpeg to be successful, the specified video scheduled for GIF conversion needs to have a color pallet as an argument. The color sample that defines this color pallet argument can be selected from the target video itself. The use of the color pallet argument is not mandatory, but excluding it from the FFmpeg command string is taking a huge risk and will compromise your outputted GIF quality. It is because FFmpeg will automatically assign itself a color pallet from the supported 256 generic color schemes. These generic colors’ accuracy can be unreliable. Working with a user-created color pallet is always a good idea.
Consider the following use case of FFmpeg command string example with color pallet as an additional command parameter.
$ ffmpeg -i FossLinuxTutor.mp4 -filter_complex "[0:v] palettegen" color_palette.png
The argument -i relates to the inputted video file on the above command string. The argument -filter_complex is optional and can specify multiple filters. Since we are using filters, [0:v] depicts its stream order. The 0 portion of [0:v] points to FossLinuxTutor.mp4 as the first video stream. The v portion of [0:v] details that we are dealing with a video file. The video filter we are using is called palettegen. Finally, color_palette.png will be the output image file for the created palette.
We needed first to create a palette so that we can use it for converting our FossLinuxTutor.mp4 video file to the anticipated GIF file format. The following command string use case clearly illustrates the final steps of using the FFmpeg Linux app.
$ ffmpeg -i FossLinuxTutor.mp4 -i color_pallet.png -filter_complex "[0:v][1:v] paletteuse" -r 10 my_gif_file.gif
The FFmpeg command portion, [0:v][1:v], depicts the used stream order to execute the available input files. In this case, we start with FossLinuxTutor.mp4 (0) and then move to color_pallet.png (1). The needed color filter for conversion in this succeeding command has changed to paletteuse, and as you can see, it takes two arguments. Finally, we named our anticipated GIF file my_gif_file.gif and gave it a frame rate of 10 through the -r argument.
This desktop GIF maker app also functions as a command-line tool. It records not only animated GIFs but also videos. It supports and optionally implements a delay timer to better prepare you for the animated GIFs or videos you want to record. This grace period before the actual GIF recording commences prevents unwanted recording fragments. Other additional supported features include mouse cursor capture and audio capture.
The command string for installing Byzanz on your Ubuntu distro is as follows:
$ sudo apt install Byzanz
A command-line use case of the Byzanz GIF maker app for recording an animated GIF file is as follows:
$ byzanz-record --duration=16 --x=100 --y=200 --width=600 --height=800 final_gif.gif
The –duration parameter specifies how long the animated GIF recording session should last. In the above command case, we record a rectangle of coordinates X and Y whose values have been specified alongside those of its height and width. Only the visible desktop screen area of the defined rectangle will be visible once the animated GIF recording finishes processing. Since we are dealing with a desktop window’s geometry and coordinates, it is a big challenge to customize a window size to a specific dimension. In this case, the xdotool app will make your GIF-making life easy. It is a reliable keyboard and mouse simulator. Its installation is straightforward on Ubuntu.
$ sudo apt install xdotool
Instead of estimating the geometry of a specific window you want to use for your GIF animation, you can run a command similar to this one.
$ xdotool getwindowfocus getwindowgeometry -shell
Depending on the window geometry you are after, your output from using the xdotool command string should be similar to the following.
Now retrieve the X, Y, height, and width values and use them on the Byzanz command string you executed earlier.
This easy-to-use GIF-maker app also functions perfectly as a video recorder on your Linux desktop. It excludes full-screen recording, and the only option you are left with is deciding which selected area of your Linux desktop screen you wish to record. Also, Peek does not implement audio recording. Despite these functional exclusions, Peek offers delay timer support, resolution downsampling, 60 FPS recording support, and hotkeys customization, a feature useful in flexibly starting or stopping GIF recording.
The installation of Peek on your Ubuntu distro is somewhat not straight-forward yet not complicated either. You first need to add its PPA repository from where you will fetch and install it as a package.
$ sudo add-apt-repository ppa:peek-developers/stable
$ sudo apt update
$ sudo apt install peek
If you need it on other Linux distros, follow the above link to its GitHub repository.
This free and open-source GIF-making app is also useful in converting GIF-recorded files from existing video files. With Haskell being the programming language used in its development, it optimized this app to have additional customization options that apply to the resultant GIF animation file.
Its rich features include depicting when GIF recording should start and end, support for video resizing or cropping, and the use of editable captions and text titles on the generated GIF files. You can choose to use Gifcurry either from a standard graphical interface or from a command-line utility, which it also provides. There is also an AppImage download link for Gifcurry, a preferred alternative to some users.
This GIF-recording and editing tool is rich with numerous advanced features that help ease GIFs’ creation. On the other hand, its rough interface might not be appealing to some users. On the upside, it offers built-in trimming and editing support as compensation for its complex user-interface environment. If you do not care much about the UI challenges, but only about its performance, then you have something to smile about. You can have a closer look at it from the Gifine GitHub Repo.
Installing Gifine on your Ubuntu distro first requires that you meet several dependencies installations together with the installation of its main installer, luarocks. The following command sequences will achieve these installation objectives.
$ sudo apt install ffmpeg graphicsmagick gifsicle luarockscmake compiz gengetopt slop libxext-dev libimlib2-dev mesa-utils libxrender-dev glew-utils libglm-dev libglu1-mesa-dev libglew-dev libxrandr-dev libgirepository1.0-dev
$ sudo luarocks install lgi
$ sudo luarocks install --server=http://luarocks.org/dev gifine
You might have noticed that Gifine takes the recently discussed FFmpeg GIF maker as one of its dependencies. To run Gifine from the terminal, you will use the command prefix gifine before adding other command string arguments.
This GIF-recording tool is impressively lightweight. Just like Gifine, it does not fully qualify as user-friendly. If you have enough technical endurance, you will be pleased with what it can achieve in GIF generation and other attached functionalities.
Installing SilentCast on Ubuntu requires that you first compile it from the source. Consider the following steps for its successive installation.
$ cd /tmp
$ wget -0 silentcast.tar.gz https://api.github.com/repos/colinkeenan/silentcast/tarball
$ rm -rf silentcast && mkdir -p silentcast
$ tar -zxvf silentcast.tar.gz -C silentcast --strip-components=1
$ cd silentcast && make
$ sudo ./ install
$ sudo apt install ffmpeg imagemagick
Afterward, your GIF recording session is one silentcast command away.
This lowly pronounced Github project makes GIFs recording and animation steps a walk in the park. Because of its limited project contributors, we can not characterize it as feature-rich. Nonetheless, in terms of performance, it meets the set user expectation. Since it is not GUI-sided, you will have to adapt to its command-line interface to generate GIF files successfully. It is perfect for low-resource machines that want a taste of the GIF world. It also supports delay capturing. Check it out on its GitHub repository. Its developers offer updated information regarding its installation and configuration.
The power and flexibility of the GIMP image editing software continue to impress. You can comfortably use it to create awesome GIFs. First, we need to consider its installation. You can install it via snap if you have it enabled or add its PPA repository and access it from there. The snap approach is as follows:
$ sudo snap install gimp
The PPA approach is as follows:
$ sudo add-apt-repository ppa:otto-kesselgulasch/gimp
$ sudo apt update
$ sudo apt install gimp
With GIMP, you first need to open and select the images you want to animate to a GIF format. GIMP makes use of layers to achieve this objective. Each selected image will exist as independent layers until you trace and click GIMP’s Optimize for GIF submenu. This action generates a GIF playback of the chosen images for preview. From there, you can use the export as a submenu to save your new GIF creation. Easy, right?
Its installation on Ubuntu Linux is straightforward.
$ sudo apt install -y imagemagick
To use it, you first need to have your image frames ready. You can use other imaging apps to complete this step. Since these image frames should have similar dimensions, a platform like a sketch will be handy. Afterward, you need to export the created frames and navigate their storage folder or directory. The only thing left now is to use the convert command to create your GIFs.
$ convert -delay 100 -loop 5 -dispose previous first.png last.png animated.gif
The -delay parameter is like a pause button from one image frame to another. The -loop parameter makes the created GIF repetitive to a defined parameter value (5). The -dispose parameter is like a transition pathway from one image frame to the next.
Onyxbits is responsible for the creation of this GIF maker app. GiftedMotion is exceptionally unique from the other GIF maker apps because of its exceptional GUI-enabled functional features. It is lightweight, functionally applicable to other OS platforms other than Linux, and only considers java as its mandatory dependency. It offers a preview function for you to have a second opinion on the GIF project you are creating on top of its multi-language support. You can also use its platform to edit the GIF files and images linked to your project.
First, download Java as per your OS requirement and use it to run the GiftedMotion executable file. Consider the following use case:
$ java -jar giftedmotion-1.23.jar
The effective use of the GiftedMotion app requires that the height and width dimensions of the images you employ remain equal.
You can now cross the earlier statement that depicted GIFs as file formats with limited color display. Improvements are underway to make your GIF life a better life. Sites like Imgur and Gfycat are using GIFV, HTML 5-based video element extension, to create GIFs. The GIFs created through these web platforms upgrade from the traditional GIFs. Their color display support is 256-plus, and they also support sound. The GIF file format created from these platforms is not bulky like the traditional ones. These file formats do not completely or officially define them as GIFs but WebM or MP4 videos. Regardless, it is a step in the right direction in GIFs’ evolution.
Since not many GIF-making apps exist for the Linux platforms, we had to scrap through several pages and forums on the internet to compile this conclusive article list. Their low headcount is due to competition from already established web platforms that generate user-desired GIFs without installing any app on their machine. These websites’ prominence can never beat the offline flexibility of working with GIF maker desktop apps. A desktop app for creating or generating GIFs does not necessarily need an internet connection to meet its functional objective. The reviewed GIF-making apps will help you complete any purpose you wish to achieve regarding GIFs.
In the ffmpeg section you used two different spellings: ‘color_pallet.png’ and ‘color_palette.png’