November 20, 2006

Easy video creation using only FOSS software

Author: Dan MacDonald

While digital video editing today is an affordable, popular activity for both the computer hobbyist and amateur cinematographer, many people seem to think that video creation under Linux is either impossible or too difficult for the average computer user. Not so! From video capture to editing to DVD authoring and encoding, you can create high-quality videos easily with free, open source software.The applications you will require are:
Cinelerra - Non-linear digital video editor and compositor
Kino - FireWire DV video capture
Xawdecode - analog (VHS and camcorder) video capture, DVB capture, streaming and TV/DVR functionality
MEncoder - video conversion
DeVeDe - MEncoder GUI for easy DVD and VCD creation
MPlayer - DVD and video playback
dvd::rip - for ripping DVD video
Firefox with the Flash 9 plugin and VideoDownloader extension - for capturing video off the Web
K3b - for burning DVD or VCD images

One way to get all the tools you need at one time is to download and install the free Debian-based Elive distribution. Video programs are often large, with many dependencies, making them difficult to compile if you can't get pre-built packages for your distro, but you can avoid all the hassle with Elive. It comes with the latest version of Cinelerra, a powerful video editor, and video codecs, proprietary graphics drivers, and video and DVD playback software pre-installed and ready to use. Any packages that you may require for video work that aren't included on the CD can be downloaded easily because Elive's package manager is set up out of the box to include access to Christian Marillat's superb repository of multimedia software for Debian.

The first step in video editing is capturing, ripping or downloading your footage onto hard drive. I have failed to get Cinelerra to capture, but there are other excellent FOSS tools available for that purpose. Kino or dvgrab can capture DV footage over a FireWire link, and XdTV (a.k.a. Xawdecode) does a great job of capturing from analogue video sources if you have a supported Video4Linux device. For good quality analog video capture under XdTV, set it to use the AVI container with FFMpeg Mjpeg codec and change the quality setting to Full. These options reside under the XdTV Record Movie/video parameters menu. You will have to experiment with the brightness, contrast, hue, and colour values under XdTV to get the best quality picture, and if you want to capture off VHS then chances are you will require a SCART to composite or S-Video cable, unless your VCR has such connectors already.

dvd::rip makes capturing from video DVDs a breeze. You have the option of ripping the entire contents of a DVD or individual chapters. dvd::rip outputs to .vob files which can be directly imported into Cinelerra without any conversion, so don't encode to DivX or Xvid after ripping as this will just waste time and reduce the picture quality of the video.

Note that to play or rip DVDs under Linux you must have a package called libdvdcss2 installed. Many distros do not include this package in a default install for legal reasons.

Importing video from Web sites such as YouTube into Cinelerra is a bit trickier, as Cinelerra doesn't support .flv Flash video files. If you want to do this, you must ensure you have both the Flash 9 plugin and the Firefox VideoDownloader extension installed. When you are on a Web page playing the video you want to download, simply click on the two blue squares in the bottom right of your Firefox window and it should then ask you where you want to save the video. Save it with a .flv extension.

VideoLAN has a video conversion wizard under its File menu which you could try using to convert the FLV file into an MPEG or something else that Cinelerra can import, but the version that I tried produced unwanted messy green artifacts in the first few seconds of the output video. I ended up using this script for MEncoder to convert FLV files into Xvid-format AVI files.

Cinelerra isn't difficult to use, but its interface isn't a carbon copy of Premiere or Avid. You can master the fundamentals of Cinelerra in about 15 minutes by following Rob Fisher's excellent tutorial. Although it is possible to run Cinelerra on a standard 1024x768 SVGA display, you would likely find it too restrictive; you would likely spend more time managing windows than editing video. A multi-head display setup is highly recommended for maximum productivity, and the higher resolution of the displays, the better.

When you have finished editing your masterpiece, the chances are that you will want to burn it onto a video DVD. Cinelerra can render your work to a number of different video file formats, but unfortunately MPEG2-PS, which is what video DVDs use, isn't one of them. I normally render to Raw DV format so as to minimize loss of picture quality, which could happen with a more lossy video codec. When rendering is complete you will have a .dv file which you can play back with MPlayer, provided you have the dv codec installed. This codec is normally contained within a package called w32codecs. If you're satisfied with what you see, you can write the video onto a DVD, VCD, SVCD or even CVCD disc by the DeVeDe conversion tool. It will churn out an .iso file that you can write to disc with a burning app such as K3b.

There is a good reason why Linux has become so popular with the big movie studios -- its technical superiority over most proprietary operating systems allows for faster, more reliable data processing. Thanks to the arrival of tools such as DeVeDe and significant developments in key apps such as Cinelerra and XdTV, Linux video production has become easier to use and more mature in the last 12 months. Now the average computer user can take advantage of the power that Linux and FOSS video software brings.