Linux Video Production: the State of the Art
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.
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.
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.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- New Products
- Users, Permissions and Multitenant Sites
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- DevOps: Everything You Need to Know
- Tighten Up SSH
- Non-Linux FOSS: MenuMeters
- Solving ODEs on Linux
- Android Candy: Bluetooth Auto Connect