Linux Video Production: the State of the Art

From box-office hits to home movies, Linux is ready, set, action.

From the operating system that gave you Lord of the Rings, Spiderman and pretty much every other film that's made these days, comes the Holy Grail of Linux computing: the home and small office video production pipeline. Unlike the object of Monty Python's ill-fated quest, however, this long-sought treasure actually exists and is finally within reach.

The problem has been one of great frustration for many potential adopters: what do I do about my home videos, my hobby films, my presentation videos? These days, even the greenest newbies can bumble their way through assembling a video in the tinkertoy-like Windows Movie Maker, and Mac users are even better off. They have a proper consumer video editing application: iMovie.

Linux has, for years, been growing into a major standard in the Hollywood studio pipeline. A cursory glance at the CinePaint Web site reveals a catalog of films that could not have been produced on time or budget (if at all) without a Linux infrastructure. Without Linux, the Star Wars prequels would have had a different look, and there would have been no Lord of the Rings trilogy. From its early days on the renderfarms to its coming of age in Shrek, Linux has proved time and again its effectiveness, power and stability to the major studios.

None of which does the hobbyist user much good. Typically, filmmaking software for Linux is dearly bought; Eyeon's DFX compositing system, the most reasonably priced of any professional Linux-based compositing systems, weighs in at a hefty $1,295 US per seat, and it's the least capable player in the field. The home producer historically sits in the worst possible spot: atop a free and exceedingly capable operating system that was powering the major motion picture studios, without any way to get in on the fun short of writing a lot of scripts and working from the command line a great deal.

During the last three years, that situation has changed. Although the situation is not yet ideal, the FLOSS end of the Linux universe now allows for a near-complete, end-user-oriented production pipeline. I know, because during the last four years, I've built up a production studio running entirely on Linux—with one gap in the pipeline—and I make my living using it.

Let's say you want to edit your brother's wedding video to produce a short film with an alien sitting in the audience as a guest. In the Windows and Mac worlds, several companies offer end-to-end commercial solutions that take you from acquisition through delivery-format authoring, covering (in no particular order) editing, titling, compositing, color correction, sound/score sequencing and DVD mastering. 3-D graphics applications are easily obtainable from a variety of other companies, and for a variety of prices. However, the companies producing such software will continue ignoring the Linux market until their high-end customers force them to produce Linux versions of their software (as happened in the 1990s with the IRIX version of Photoshop).

Although it would be nice to have such tools, we're not going to get them. And, I can finally say with confidence, the day approaches when we won't need them, either.

To get a home or small-office production studio running, you need most of the pipeline shown in Figure 1.

Figure 1. Production Pipeline

Not everything will be needed for every project, and indeed most projects will not approach this level of sophistication. Nevertheless, our Alien Wedding Guest project will give it a thorough workout, enough to show the weaknesses in the Linux pipeline as well as its strengths. To that end, we do an overview of the basic post-production process.

Acquisition—Kino, Cinelerra, XFS

When choosing your acquisition format, your originating medium can be just about any sort of video or film (see the Acquisition Means and Formats sidebar).

Because the focus here is on home and small business, it's safe to assume that the most common format for the next couple of years is going to be MiniDV. Getting the footage into your computer is fairly straightforward—DV comes in over the 1394 (FireWire) port, which is well supported in all modern kernels, and dumps straight to the hard drive. Be sure you have plenty of disk space—DV clocks in at approximately 12.5GB/hr. In either case, either Kino and Cinelerra will capture for you neatly, and variety of command-line tools exist as well.

There is a major technical issue to keep at the front of your mind: video compression. Pretty much any video you import will have undergone a compression pass. Edits don't usually require a second pass, so this isn't much of a problem if your plan is to do a quick-and-dirty edit, perhaps throw in a title, and output your video again. But the moment you start changing the video—effects, transitions, color correction, CGI—it has to be recompressed. Just as happened in the analog world when dubbing tapes from copies of copies, generation loss is a palpable problem. The cardinal rule, then, is to minimize further compression passes on your footage. If your system is properly managed, you can usually get away with only one additional compression pass; the one that you do on final authoring of the project for its delivery format.

You also will need to look to your filesystem. Simply put, video takes a lot of space, and it requires a high level of disk throughput and processing power. The faster your filesystem, the better the performance in your pipeline will be, and the fewer dropped frames you'll have. At the time of this writing, XFS is the fastest for this type of work, although the next generation of ReiserFS promises to give it a run for its money.

______________________

Comments

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...

LiVES

Anonymous's picture

Your review is incomplete - you don't even mention LiVES: http://lives.sourceforge.net

Kino

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

ffmpeg

fel3232's picture

how does ffmpeg work? thanks, I'll bookmark

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix