Linux Video Production: the State of the Art
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.
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).
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 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 (www.blenderwars.com/downloads/voodoo_convert.py).
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).
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- The Ubuntu Conspiracy
- Science on Android
- A First Look at IBM's New Linux Servers
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Vigilante Malware
- Vagrant Simplified
- Bluetooth Hacks
- October 2015 Issue of Linux Journal: Raspberry Pi
- Libreboot on an X60, Part I: the Setup
- System Status as SMS Text Messages