Linux Video Production: the State of the Art

From box-office hits to home movies, Linux is ready, set, action.
Editing—Kino, Cuisine, Cinelerra, Diva, Blender, MainActor

Once imported, you'll need to edit your footage. Take heed: there's more to editing than simply setting clips in order. The editing process involves timing decisions and asset management (footage selection, logging and commenting). All these are essential if you want to have a workable setup and tell a coherent story. There's nothing worse than being caught in the middle of a project and not being able to find that one particular shot that'll make or break the scene. Your footage organization (which can be as simple as a well-ordered directory structure) should be obvious, scalable and flexible. It'll need to grow with you, so put a bit of thought into how you want it set up at the outset.

The choice of editor is going to be determined both by the format of the footage you're working with, and by the way you structure your work. Stability, performance, interface and interoperability all need to be weighed.

At the time of this writing, the Linux editing field is in a state of dramatic upheaval, caused in no small part by Google's Summer of Code. By funding the FFmpeg/Blender integration project and the gstreamer-based Diva, they've put major cracks in a dam already fixing to burst. By the time of publication or soon thereafter, there should be five viable FLOSS choices for editing platforms: Kino, Cuisine, Cinelerra, Diva and Blender (Table 1). Of course, if you're really wanting a commercial solution for less than $2,500 US/seat, there is always MainActor, a program that amazes all who use it with its continued success as the Ford Edsel of video editors.

Table 1. Editing Platforms

At the time of this writing, Diva looks promising, but isn't releasing proper packages yet; Blender is in the midst of a major development cycle to bring its editor up to par; Cinelerra is incredibly full-featured but barely usable, due to serious interface design and stability problems (any program that proudly lists, in its version 2.0 changelog, “Fewer lockups when resizing video window” does not make it into my toolbox).

3-D Computer-Generated Imagery (CGI)—Blender, The GIMP

In our imaginary Alien Wedding Guest project, we're going to need some fairly sophisticated CGI: a spaceship hovering in the background and an alien being of some sort sitting in the audience or standing off to one side seems a bare minimum. Constructing these objects in 3-D space (modeling), adding color and bumps (texturing), animating their movement, and rendering out a finished video for blending with the original wedding footage covers the basic 3-D pipeline, as can be seen in our initial flowchart.

There are a variety of FLOSS 3-D programs available for Linux, most of them highly capable, and most of them require a good amount of scripting to get working in a pipeline. One program stands out far and away from the pack in features, interoperability and usability: Blender.

Where programs like POV-Ray are essentially renderers that depend on scripts or external programs for their grist, Blender is an end-to-end 3-D solution that plays nicely with a variety of renderers and file formats. In terms of capabilities, Blender aims to be an open-source Maya, and in the last 18 months, it has made amazing strides to that end with no sign of slowing down.

One of its most significant assets is its user base. Among the video and graphics applications available for Linux, it stands alone—far beyond even The GIMP—in the energy and vitality of its community. Tutorials and helpful forums abound, making its professionally oriented interface quickly accessible for all the basic tasks involved in small projects.

The GIMP also plays an indispensable role in the 3-D process as a texture creation system. Creating bump, reflection, specular and dirt maps from photos or painting texture layers from whole cloth, there isn't anything on Linux that even comes close in terms of versatility and raw power. What's more, by the time this article is published, GIMP modifications should update Blender textures in real time.

Motion Tracking—Voodoo

Motion tracking is matching the movement of computer-generated elements to your real-world footage. It's also used for stabilizing shaky handheld video. A number of motion trackers have come and gone for Linux, and until an open-source solution is developed, this will likely remain the case, as university research projects are bought up by commercial interests for development and sale to movie studios. At the moment, the best and only player on the field is Voodoo, put out by Digilab at the University of Hanover. It has the added advantage of outputting tracking data to a Blender-readable script. In practice, the export leaves a lot to be desired, but fortunately Ian Gowen has written a conversion utility that translates Voodoo's clumsy export into a very clean script for Blender (

Voodoo is not a perfect solution; it seems particularly to confuse slow zooms and slow rotation, but despite its minor defects, it's still a capable little program that's fairly well documented and licensed for free use by all. I don't doubt that sometime in the future it will be commercialized, but until then we have it to do with as we please (alas, we cannot have the source code).



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

A new actor on the stage...

Kdenlive's picture

The readers may also have a look at Kdenlive a fresh MLT based video editor for KDE which is so easy to use and fast...


Anonymous's picture

Your review is incomplete - you don't even mention LiVES:


Nickowen's picture

Thanks for a great article. I've been trying to ditch windows for quite a while now, but the big stumbling block has been video editing. The first program I tried was Kino, but due to a lack of tutorials and a confusing interface I lost interest. Next came Cinelerra, I had a lot more luck with this program, but the final render left a lot to be desired. The program I'm trying at the moment is Lives, this seems to convert all my clips to image sequences and as a result is very slow. All I need is a program that joins all the video clips together and is capable of putting a simple fade between them.

Quick fact check...

Anonymous's picture

Actually...and speaking as a filmmaker here...Linux is a valuable part of the workflow in movie production, but its not the only OS (or even the primary OS in a lot of cases) floating around independent and Hollywood movie studios. Linux is best used in render farms, as it is a cheap and reliable means of pulling together a lot of processing horsepower to deal with the massive amount of data behind the thousand of frames in every film. But, your introduction is still a little misleading.

That said, thanks for the great breakdown of the movie editing software available for Linux. Personally, I think Kino has the brightest future for home users, and I sincerely hope it finds its way to other platforms. A Quartz version of Kino on OS X with an improved interface and Quicktime and CoreAudio under the hood would be sweet. (And, no, Quicktime for Linux is not the same.)

adding sound to mpegs

kgoess's picture

Great article, but somehow you managed to not answer the one question I've had on the subject for over a year.

My six-year-old and I have had great fun making stop-action movies using mpeg2encode and the Gimp ('convert *.jpg movie.mpeg'), but I've never been able to find a free way to add sound to the resulting mpeg.

You explicitly skipped talking about the audio pipeline part, and I haven't seen Dave Philips answer that particular question yet. Do you know of a simple (and command-line?) way to add sound to an mpeg video?

Asuming you got a sound file

Slawek's picture

Asuming you got a sound file in proper format (that is mpeg2 or ac3) you need use mplex. To editing sound you can use audiacity, encoding to mpeg or ac3: ffmpeg


fel3232's picture

how does ffmpeg work? thanks, I'll bookmark