an overview of video editing on linux
With the advancement in affordable digital video technology (with digital cameras that can create video, as well as video cameras that record direct to memory stick, dvd or their own hard drive and in HD), video editing is fast becoming a core function of the desktop. While there is a plethora of (sometimes quite expensive) video production software for Windows and Mac in the home and semi-pro market, to date it has been a bit more of a challenge to get good software in Linux. However, things are most definitely on the improve. This article is an overview of the state of video editing on Linux.
dv hardware modules
Often the first thing that people have trouble with, in terms of editing home videos in linux is actually getting the footage off their camera. With digital cameras, and video cameras that record to memory sticks or hard drives, this isn’t such an issue. However, if you’ve got a dv camera with a firewire interface, it’s a bit more tricky, although with desktop oriented distros of today, it should work out of the box. If not, you just need to make sure that you’ve got the right modules loaded. You need to have the following modules loaded ieee1394, ohci1394, raw1394, video1394, dv1394. These should be in most kernels in the mainstream distributions. If not, then you may have to recompile your kernel – google for it, and it’s surprisingly easy to do – even if you haven’t done it before. To check, type:
sudo lsmod | grep 1394
If you don’t see all those modules loaded, then type:
sudo modprobe [modulename]
to load the ones that are missing (obviously replace [modulename] with the missing module in the above line. The other thing you may need to do is make sure that /dev/raw1394 has read/write permissions for users. I’ve noticed that this is an issue in ubuntu. If not, then type:
sudo chmod 0666 /dev/raw1394
You should then have access to your video camera via firewire.
There are a number of projects including pitivi, avidemux, lives, kdenlive, kino and openshot.
lives looked promising when I was looking around their website. It looked like they had a lot of editing options, it had multitrack video and audio, and a lot of effects. However, when I installed it and started testing it, I ran into a huge number of usability problems – the major one being, I just didn’t get it. The first issue I encountered was the inordinate amount of time it took to import a video clip for editing. I understand that lives converts the video into mjpeg frames, which makes the import process very slow. This would become very tedious very fast if you had a lot of clips to import. Next, lives has this very strange interface where you work on a single clip at a time. However, if you want to combine the clips in some way, then you have to toggle in the “multitrack” interface. At this point, you can no longer do things to a clip like add effects etc. In the multitrack window, I couldn’t find a way to add transitions between tracks. It seemed a very odd way of doing things. I’ve used a number of video editors with the “time line” style user interface. However, by having a separate “multitrack” window, lives didn’t really follow many of the conventions for such an interface. I don’t mind if an application has an unusual interface. Sometimes, you have to break with convention to make something better. However, I could not find any documentation to help with using the interface, and without documentation, and no ability to fall back on the conventions I had learned through other applications, I could not get lives to do anything useful. That being said, following the first publication of this article, the LiVES author, salsaman pointed me in the direction of a tutorial for using the multitrack window. I haven’t had a detailed look at the tutorial, but it certainly looks like it will point you in the right direction, and get you up and running with LiVES. Once you get to grips with the interface, I’m sure LiVES could be a good option, with some quite powerful features.
Then there’s cinelerra. This has recently been forked into two projects. The community version is now found here. As you might see from the website, the recommended hardware specs are dual 2.4Ghz Opteron, 4GB RAM, 200 GB storage for movie files and Gigabit ethernet. However, the documentation wiki says you only need a 500 MHz cpu. In my view, that seems a little lightweight. However, with the latest dual and quad core cpus available, those should be enough to get you going. I’ve tried using cinelerra, and like lives, the interface is very confusing. However, unlike lives, there is reasonably good documentation for cinelerra. I recently listened to a podcast where they were discussing cinelerra, and an experienced user recommended sitting down with a tutorial like this one. Cinelerra looks like a very powerful option, which is being actively developed. It just seems you need to have a powerful machine, and the patience to sit down with a manual to get the interface down.
One application that I have used a lot, and still use for particular functions is kino. This is a non-linear video editor, that is quite advanced and now very stable. I began using kino way back when it had few features, and even less stability. It was rudimentary, but all that there was for video production in linux, unless you were seriously hardcore, and went command line. kino has all the functionality you would expect of a video editing package, and with a bunch of addons, has a stack of effects, filters and transitions that you would expect in a high end video editing suite. You can export to any number of different formats, including double pass dvd export. The interface is not quite the traditional time-line running along the bottom, and it can be a little difficult to get used to. I used it as my first ever video editing application, and it seemed natural to me at the time, and I had no trouble with it. However, now that I’ve used an application that has a graphical timeline at the bottom, kino does seem a little odd in its approach. One drawback of kino is that it only deals with dv video. So if you’ve got a camera that records direct onto a dvd in mpeg-2 or AVCHD format or want to use any other clips you’ve got lying around in other formats, then you’re going to need to convert it to dv format using mencoder or something similar. For a reasonably useful tutorial on kino, have a look at this article.
kdenlive my preferred linux video editor. It has come a long way in the last couple of years and has a lot of great features, including support for AVCHD. One of the biggest problems I had when I first got my Canon HD video camera was finding an editor that supported AVCHD. Even on Windows, there didn’t seem much available. After struggling with trying to transcode into a usable format, ffmpeg finally came out with support for AVCHD and consequently, so did kdenlive. I won’t go into too much detail here, as I have written a whole article on kdenlive. Suffice it to say, the features of kdenlive now rival packages like Sony Vegas Pro on Windows – which I used as my preferred video editor until kdenlive hit about version 0.7.
PiTiVi is a project that’s been around for a long time, and has (sadly) not progressed much at all. It has basic editing features, such as splitting clips and moving them around on the time line. It can import and export video, and that’s about it. It is built around gstreamer, which means that it can import and export in whatever codecs are supported by gstreamer. Fortunately for the PiTiVi project, it has now been adopted by Ubuntu, and appears in the default packages on the live CD. In my view this is unfortunate as both kdenlive and openshot are far superior to PiTiVi, and the Linux desktop would have benefited greatly from having a decent basic video editor shipping with Ubuntu. But without support for AVCHD, transitions, filters or title creation, PiTiVi is sadly lacking in even the most basic of features. Perhaps its inclusion in Ubuntu may help to improve it into something useful, but at the moment, this is pretty much useless as an editor.
OpenShot is the new kid on the block, but it’s making quite an impression. It’s built around the MLT libraries – the same libraries as are used by kdenlive – which means that it gets a whole bunch of video editing coolness right out of the box. It provides basic editing features, as well as transitions and filters. It allows multiple video tracks, title creation and editing, audio editing, slow motion, clip resizing and a whole lot more. It has a fantastic export tool with templates for common websites such as Youtube/Vimeo, as well as common devices and disc formats. It can even export to Blue Ray format. These are all basic features that you’d expect to see in a basic editor. It doesn’t have the fine grain tuning for its tools that the more pro editors on other platforms have, but this has everything you’d need to make pretty decent home videos and export them to the web. Unfortunately it’s AVCHD rendering is quite slow, so this does make it difficult to edit video in this format – maybe it’s the python pedigree that makes it slower than kdenlive when rendering AVCHD encoded video. It doesn’t quite rival kdenlive for features, or usability, but it’s a solid basic editing package.
Video editing on linux has been a bit of a weak area for most of the 10 years I’ve used Linux on the desktop. However, with kdenlive and openshot, I think there are now credible options that the average desktop user can be happy with. They provide a familiar interface, and has enough features to keep most home video enthusiasts happy.