Tools for converting multimedia files

Transformers

© Photo by Samule Sun on Unsplash

© Photo by Samule Sun on Unsplash

Author(s):

Multimedia files are easy to convert – if you have the right tools. This month we look at some useful applications that convert video and audio files.

Tutorials, screencasts, or even training videos are becoming increasingly important in everyday life. Multimedia is particularly useful in the home office and for homeschooling. But not every device can handle every file format, and not every screen displays all resolutions. Conversion programs help to adjust the formats and modify the image resolutions for the best possible results. Linux offers a great variety of multimedia conversion tools. We decided to investigate a few of the top contenders. Note that we focused on active projects for this report and did not consider some of the alternatives that are still widely known but not in active development (see the box entitled "Out of the Running").

Out of the Running

Numerous graphical front ends for multimedia back ends are available on the Internet. However, many of these tools have not been maintained or developed for years. For example, Transcoder has been orphaned since 2011, and OggConvert has not seen an update since 2010. Other software, such as FFmpegYAG, can no longer be installed on current distributions due to unresolvable dependencies.

Containerized

Audiovisual content can be stored with different parameters and image resolutions. Audio files can be saved in lossless or lossy formats with different bit rates. Container formats, such as MP4, MKV, and AVI are popular for video files. A single container can hold multiple files. For instance, a movie container can store several audio files in different languages. Since the codecs vary, the container format alone does not allow any conclusions about the quality of the contents.

Linux supports most free multimedia formats and codecs out of the box. Commercial packages also make proprietary codecs available; Linux can clearly score points in direct comparison with other operating systems as a platform for converting and playing multimedia content.

Existing solutions for converting multimedia content offer some flexibility: Often you can modify the resolution or bit rate to adapt to external playback options. For this purpose, most Linux applications for converting multimedia content rely on one of the leading open source multimedia frameworks. Many of the tools use FFmpeg [1], but GStreamer [2] also forms the basis for some conversion programs.

Ciano

Ciano [3] is a multimedia conversion tool that keeps with the philosophy of providing the easiest possible user interface. The Ciano conversion utility has an easy program interface that requires no training.

Ciano uses FFmpeg as its back end. Because Ciano can also convert image files, you'll need to install ImageMagick on the system. Several Linux distributions have added Ciano to their package archives, and you will also find a deb package on the project website.

Ciano's interface (Figure 1) is divided into three parts: On the left of the window is a vertical bar with the different target formats. To the right is the large work area, where you can see a list of the files to be processed. A small settings dialog resides in the titlebar, which you can access via a gear icon.

Figure 1: Ciano requires no training thanks to a very simple structure.

To convert content, click on the desired target format in the format bar on the left. In the dialog that opens, click on the + icon and then select the desired files in the file manager. Ciano will transfer the files to the list view. Click on the Start conversion button to start the conversion.

The selection window then closes. Ciano loads the contents into the working area of the main window and starts the conversion. A bar below each file indicates the progress of the action. Ciano can convert several files simultaneously.

Curlew

Curlew [4] is a graphical user interface for converting audio and video files written in Python and based on the FFmpeg framework. The still-quite-young project is available in the repositories of many distributions. In addition, you will find the software as a tarball on SourceForge. Installing from the repositories creates a separate launcher in the menu hierarchy.

Curlew opens a clearly arranged program window with a state-of-the-art look. In the usual style for the Gnome desktop and its applications, Curlew combines the most important control elements in the titlebar (Figure 2). An initially empty table view takes up most of the window. It later fills up with a list of selectable files, which also contains information about the file size, as well as time information for the conversion.

Figure 2: Curlew impresses with a very easy-to-use interface.

At the very bottom of the window, you will find a button that covers almost the entire width of the window, which you can use to select the target format. Clicking on the button opens the list of target formats in a separate window. In addition to the conventional container formats, the list contains numerous hardware-specific formats. Double-click one of the listed formats to add it to the favorites list.

You can configure individual settings for each of the listed formats. Clicking on the gear icon in the titlebar opens a dialog in the list area of the program window with a tab structure that supports format-dependent modifications.

The settings dialog also lets you click to configure a two-pass setting, where the second conversion run is supposed to offer better image quality. Checking another box tells the application to convert only the video track but not the audio track.

Once you have configured all the settings, click the gear icon in the titlebar to go to the empty workspace. If necessary, save the configuration up front as a favorite so that you can use the settings in later conversion runs.

To convert multimedia content, drag and drop the source file from a file manager into the workspace of the program window. Curlew lists the individual files one below the other. After you click the Convert button top center in the window, the software starts to convert the source file.

Converting high-resolution video files takes a long time even on state-of-the-art computer systems. If you want to stop the conversion process, click the red Stop button. To view the contents of a file in the conversion list, right-click on the desired entry and select Play in the context menu. Curlew now opens the preset playback software and plays back the content. You can even play back a file that the program is currently converting.

FF Multi Converter

FF Multi Converter [5], which is also based on FFmpeg, converts documents and image files as well as multimedia files. On the back end, ImageMagick converts the graphic files and Universal Office Converter (unoconv) converts the documents. The software, written in Python and based on the Qt libraries, is available in the repositories of most common distributions.

The FF Multi Converter main window appears somewhat confusing (Figure 3). In its upper third is a list area where the source files you wish to convert are loaded with the help of a small file manager. Below that, you can configure the conversion in a settings dialog. The settings are divided into the three tabs Audio/Video, Documents, and Images.

Figure 3: FF Multi Converter opens a window with many options.

For video files, use the preset dialog to specify the container format in the Convert to: selection box. Next to it, you will find more selection boxes, where you can choose the video and audio codecs. If you click on the More button, you'll find an extended settings area that lets you configure additional parameters for the target file. For example, you can set the output quality and modify the aspect ratio of the target file. If you have particularly powerful hardware, specify the number of processes to run simultaneously in the Threads field.

At the bottom of the window, enter the output path and check a box to define whether the software deletes the source file after conversion.

When you are finished configuring settings, press the Convert button bottom right. The software then opens a dialog with a progress bar. Pressing the Details button also opens a virtual terminal display within the window, in which the program continuously outputs status messages.

Simultaneous playback for the content you are converting is not available, but if you need this option, you can always turn to external playback software.

FFQueue

FFQueue [6] is available on the project's website as a generic tar.xz archive for distributions with DEB package management. You will also find a link to the source code, which is licensed under the GPLv3. If you are using Debian, Ubuntu, or one of their many derivatives, simply unpack the tar.xz archive and then grant execution rights to the FFQueue binary by running the command:

chmod +x FFQueue

You can then start the software with the ./FFQueue command.

The surprisingly fast program then opens a somewhat unconventional main window (Figure 4). Instead of the usual menus, you will find a buttonbar at the top with two work areas arranged below it. The files you wish to convert appear in the upper segment. Below them, FFQueue displays real-time notifications during transcoding, which it also records in its logfile.

Figure 4: FFQueue provides all the necessary information in the program window.

FFQueue does not offer a full-featured settings dialog but expects some system management skills on the part of the user. Since the software relies on FFmpeg as its back end, the configuration dialog offers the option to define the search path for the FFmpeg binaries individually.

You can also specify which external media player you want to use for previews. FFQueue explicitly proposes the VLC player. If audio tracks or subtitles are available in separate files, specify the file extensions in the settings dialog. If you want to pass additional special parameters to FFmpeg, enter the parameters in the Custom console command input field.

You create settings profiles in the Presets dialog, which you can open by pressing the button of the same name. The settings contain detailed presets for audio and video codecs, as well as the general parameters. After opening the Preset manager dialog, click the New button to open a window where you can create a profile (Figure 5). Enter the name of the new profile at the top and then make the appropriate settings in several tabs. Once you have set everything up as desired, press the OK button bottom right to transfer the new profile to the profile manager.

Figure 5: Using profiles to manage settings in FFQueue.

You then have two possibilities for starting the content conversion. The Add button in the upper left corner of the main window opens a file manager in which you select the file to be converted. Alternatively, you can tell FFQueue to convert several files in batch mode. To use batch mode, you must have at least one settings profile in the Presets dialog. Once you have created a profile, press the Batch button in the main window to open the file manager and use Ctrl+click to select content. Then click on Open to open the batch editor. The batch editor enables granular configuration of the conversion process.

The Dry run… button lets you check whether your configurations for the batch jobs are correct. The software tests the job configuration and displays the matching results at the bottom of the main window. If FFQueue indicates correct job settings, you can start the individual jobs for batch processing by pressing the Make jobs… button. The program lists the jobs it created individually at the bottom of the main window.

Press the Start button to start processing the individual jobs.

HandBrake

HandBrake [7] has firmly established itself in the Linux universe as a multifunctional program for transcoding multimedia content. All of the popular Linux distributions have prebuilt versions of HandBrake in their software repositories, and you will even find even a package for the command line.

HandBrake, which is based on the FFmpeg framework and GTK+, transcodes optical media and comes with some predefined profiles that contain settings for special end devices, such as Sony PlayStation and Apple's iPod. You will also find profiles optimized for platforms like Vimeo and YouTube. In batch mode, HandBrake processes several jobs in succession if required.

HandBrake supports many current codecs. For example, you can convert visual content to H.264 or H.265, but also to MPEG-2 and MPEG-4, as well as VP8 and VP9. In addition, HandBrake supports the Theora codec. For audio tracks, the application can handle AAC, MP3, Ogg Vorbis, AC3, and FLAC (16- and 24-bit).

The interface in the graphical version of HandBrake (Figure 6) appears somewhat confusing for the uninitiated. In addition to a menubar and a buttonbar below, you will find setting options for the transcoding job in the work area.

Figure 6: HandBrake shows all the settings for the source and destination files in a tab structure.

Specify the source file using the Open Source button top left in the window. If the video is in MP4 or MKV format, you will only see one chapter; if the video is a DVD or Blu-ray disc, you will see the number of individual chapters. A preview image of the loaded source video appears in the program window.

Below the chapter and profile overview, you will find the actual workspace. HandBrake lists the format, codecs used, resolution, and aspect ratio of the current source file. You can set other important options in the Video, Audio, Subtitles, and Tags sections.

In the Video section, you can configure specifications for the frame rate, encoder, bit rate, and image quality. In Audio, you will find the associated options for the audio track. If you have loaded a video from an optical disc with several audio tracks for language variants, you can integrate the desired audio tracks into the target file in this dialog. Professional playback software, such as the VLC media player, detects the additional tracks and offers a menu in which you select the track.

The same applies to the Subtitles tab, where you integrate any existing subtitle tracks into the new target file. By default, subtitles are not displayed automatically, but can choose to display subtitles in a drop-down menu. HandBrake saves the subtitle tracks directly in the target file.

The Tags tab lets you tag the file with keywords to make it easier to categorize and index later on. For this purpose, HandBrake offers several fields for free text input, where you can enter, say, the director or actor and also the genre.

Once you have made all the settings, press the Start button top center in the program window's buttonbar. The software will the start transcoding,

HandBrake is not exactly frugal with resources during transcoding. On conventional desktop computers with quad-core processors, the application generates heavy load on all the CPU cores, even if the CPU supports hyperthreading (Figure 7).

Figure 7: HandBrake generates a heavy load on the hardware.

QWinFF

The small QWinFF [8] program acts as a graphical front end for FFmpeg and relies on the Qt libraries. The software is available in the repositories of almost all distributions. QWinFF shows an extremely spartan program window after installation and startup. In the window, the large list area shows the files to be converted. Above this area is a buttonbar and a small menubar.

To convert a file to another format, just drag it from a file manager and drop it into the program window. QWinFF then opens a new window in which the file appears in a table view. To select additional content for conversion, press the plus button to the right of the table view and select the other files from the file manager.

Because the table view includes a wizard, you can set all configuration options for the conversion in a few predefined steps. First select the content, and then click on the Next button. A dialog lets you specify the target formats and the output path.

QWinFF is based on FFmpeg, so you will find the entire range of codecs supported by FFmpeg and installed on the system in the Convert to selection field. Caution: QWinFF does not distinguish between audio and video codecs. If you accidentally set the wrong output format, the video or audio track might be disabled.

The software also comes with profiles for common use cases, which you select in the Preset selection box. Use the Edit button to modify a profile if necessary. In the Advanced tab, you then enter individual parameters of the FFmpeg command set directly in an input window.

To set detailed options for the output files, select a file you wish to convert and right-click to open a context menu. The Set Parameters entry takes you to the Conversion Parameters dialog, where you can modify parameters for the video and audio codecs and the image resolution. Checking the box lets you hide the video or audio track completely.

After completing all the settings, press OK to confirm your selection; then press Start to start the conversion. QWinFF processes the files listed in the table one after the other (Figure 8). The conversion does require some hardware resources, but at least the computer remains operable.

Figure 8: QWinFF processing several jobs one after the other.

Conclusions

Thanks to the solid multimedia foundation provided with Linux, you have several reliable options for converting video and audio content. The graphical front ends remove the need to research and memorize command line parameters and provide a useful overview of individual configuration settings.

Users with professional needs who insist on granular settings are best served with HandBrake, but the many HandBrake options add to the learning curve. On the other hand, if you are hoping to start converting files immediately without background knowledge, you are better off with QWinFF or Ciano. Users who value an interface with a state-of-the-art look will probably prefer Curlew and FFQueue.

Keep in mind, however, that all the programs described in this article are resource hungry. Users with older systems that lack hyperthreading and multicore processing will have to wait for their output files.

The Author

Erik Bärwaldt is a self-employed IT admin and technical author living in Scarborough (United Kingdom). He writes for several IT magazines.