Marco's Blog

All content personal opinions or work.
en eo

Non-Linear Video Editors in Linux

2013-07-23 11 min read Comparisons marco

Imagine you collected a bunch of home videos (in my case, with a surfcam) and you want to make them into a coherent stream. Imagine you want the finished product to look cool, or at least watchable. Imagine you want to do this on Linux. What are your options, and how do they work out?

I took the time to test the five major Linux contenders in the space, and published the results below. Here the list of software tested:

  • Cinelerra
  • LiVES
  • Kdenlive
  • OpenShot
  • PiTiVi

You’ll be surprised at how things worked out!

General Setup

I mentioned the use case: I have a bunch of short clips shot at high resolution (1080p) that need to be transformed into a YouTube clip or a DVD to send to friends. That matches the use case of someone trying to edit a home video, joining only the interesting parts with transitions and other effects. Titles and slide shows should be possible, and the whole process should be easy and painless.

The computer I am using is a fairly powerful AMD-based Kubuntu Raring (13.04) with a decent but not screaming fast 1 TB drive. I left the memory at 8G, since performance hadn’t been a problem. I am a Linux power user (having installed my first Slackware in 1994), but unlike many of my geek friends, I have very little patience for lengthy compilation battles and endless reconfigurations.

Non-Linear Video Editing Basics

In a non-linear video editor (NLVE), you combine several tracks into a single output. That is, you have a series of clips and audio sources, and you mix them and blend them whichever way you like until you have something that can be rendered.

The “non-linear” part consists in the fact that you can have two things happen on different tracks at the same time. The end result is always going to be linear (an audio-video clip), but the sources are going to mix as you want. (In that the name is slightly confusing).

The task at hand is fairly simple: you point at a series of sources, put them on your time line in whichever way you see fit, and apply a series of effects to the clips, or transitions to groups of clips. An effect could be increasing the brightness of a clip, or adding a caption. A transition might be a wipe, where one video is replaced with the other in a swiping motion.

Once you are done with the selection and configuration of clips, effects, and transitions, you select a destination format and render. This gives you the final clip, which should have all the things you selected placed into it.

Cinelerra

Whenever I start up Cinelerra, I am reminded of Blender. Both software packages may very well be extremely powerful and easy to use – but since I can’t figure them out, they leave me uninterested.

It all starts at the installation. You have to configure the Cinelerra PPA on your Ubuntu system. It’s not really a pain, and you’ll have to learn it eventually, but it’s odd that Cinelerra never managed to be included in the main distribution.

Once you configure the PPA, you apt-get install cinelerra-cv. Then you start up the thing, and a set of four windows tiles the entire screen. The look and feel is Borland circa 1996, but I may be a little generous there.

If you’ve never looked at a non-linear video editor (NLVE), Cinelerra is not the place to start. For instance, you cannot select media in the Media dialog. For that, you have to go to the File menu in the Program window. Once you add a bunch of clips, hey are automatically inserted into separate video tracks, one per clip. Unfortunately, they are all inserted at the starting point of the time line, so that you’ll have to move all of them except the first one. Also, since only two clips typically overlap at any given time, it’s much easier to work with a two track time line than with one with a dozen tracks if you import a dozen clips.

Once you place your clips into tracks, you can select transitions and effects. The built-in variants have icons that remind one of Borland’s baby designs and one wonders why they didn’t just list names if they didn’t think it important to have usable visuals. At least, the selection of effects is pretty big. Unfortunately, the really useful effects are missing.

Cinelerra’s last release was over a year ago, and there are definitely better contenders around. I don’t know of a single reason to prefer this application over the other ones, and the user interface really needs a lot of help.

LiVES (LiVES is a Video Editing System)

Since LiVES is in the Ubuntu repository, installation is a breeze: apt-get install lives and you are good to go.

The first time LiVES starts up, it shows you a giant dialog in a strange shade of dark gray. The shade is not strange, but the fact you can’t really read the black text on it is. Once you decipher what the text says, you have to answer such all-important questions as whether your Audio is signed or unsigned, and Little Endian or Big Endian.

Yes, I know what that means. But I also know that no self-respecting software application should ask questions like that from an end user. What is someone supposed to say on a welcome dialog? I want my audio to be Little Endian?

Once the dialog is gone, you get a giant window that looks like any other NLVE. Except it has a status/log monitor at the bottom that makes the whole thing look rather geeky. But that’s not bad: sometime I really wish software did tell me what’s going on.

You select the clips to add from the File menu and they are imported. Import takes longer than I wished, but that wouldn’t be a problem yet. Once you get the clips into the top area of the application, though, nothing results in one of the videos popping into the timeline. Dragging and dropping, the logical step, makes the log window tell me that frames were inserted, but the timeline shows nothing.

It’s also probably just me, but it irks me that there is a banner in the middle of the application that says, LIVES in film strip, that seems to have absolutely no function.

Surely, an application that frustrates is bound to catch some abuse, and I managed to crash and freeze LiVES on several occasion. What I haven’t managed, yet, is to add a single video to the time line in a fashion that I could use.

Kdenlive

I spent so much time getting frustrated with earlier versions of Kdenlive, I don’t even know why I tried it again. I gave it another shot, since it’s available on the Ubuntu repos, and I cannot state how much more stable and more powerful this application has become in a relatively short time.

Once you start up Kdenlive, you get the usual NLVE screen. You add clips from the Project menu, which seems a little backward, considering there is a Clip menu. But you’d figure that out, eventually, right?

Clips are imported easily (except for the AVI files from my camera – they have to be first converted to something else). Then you can just drag and drop clips to your Video tracks. Simple as that.

The selection of transitions and effects is also simple: you just drag them to the clip to which you want them to apply. Then you configure them in the Effects and Transition area. Best of all, there is an outstanding real time preview of what that will all look like at the top right.

Downsides? It’s completely unclear what some of those effects and transitions really do, and the usefulness of some is marginal at best. It’s as if anyone could add a E&T, and it gets automatically distributed with Kdenlive.

Also, while adding slideshows and titles is as simple as clicking on the Project menu and selecting the corresponding menu item, there is no easy way to create a default title by selecting a text and an image. Instead, you have to create a title clip, select the image and fit is somehow, and then enter a text item. It’s more powerful, but it would be nice to have something simpler.

Also, from a user interface perspective, it is quite annoying that some important elements are hidden in the status bar at the bottom. That includes the all-important zoom function.

Kdenlive also has support for parametrized effects, like pixelation boxes, which makes it relatively powerful. Also, there is no limit to the effects and transitions that can be added on later.

OpenShot

OpenShot is the great upstart in the Linux video editing world. The project started in 2008 and attracted a lot of attention. Right now, OpenShot is in the Ubuntu repository (the creator uses Ubuntu himself) and is easily installed.

As NLVEs go, OpenShot is a breeze to understand. When it starts up, it has a tabbed interface on the left for the different media and effects, a preview window right, and the timeline at the bottom. The timeline simply has two video tracks and there is no obvious way to add more, or to add an audio clip.

The spartan interface continues with the transitions: the only ones supported are frame-on-frame: all you can do is choose which parts of the old videos and which of the new video are shown during the transition, but there is no way to have one clip move, rotate, or shrink. (There are effects for that, though.)

OpenShot is remarkably stable and fast. The former is a result of using Python, an interpreted language, while the latter is despite using it.

I would definitely suggest every person that is new to NLVE use OpenShot. It’s only when you need to do more than OpenShot currently offers that I would switch to a more powerful NLVE.

PiTiVi

There is such a thing as too simple, and PiTiVi has gotten there.

You install it just like other software in the Ubuntu repositories, and when you start it, you have a very simple interface with only one video and one audio track. A helpful hint tells you how to get clips in, and you are good to go.

You drag and drop clips on the timeline. You add effects to the clips. Transitions are done differently than in other NLVEs, which is where the “too simple” comes from. For a transition, you simply plop one clip onto an other. That’s handled in a somewhat non-intuitive way, in that the first time the video is placed on the timeline below the video that is already there. When you then move the clip on top of the other one again, they “fuse” into a transition.

The idea is good, but the implementation leaves room for improvement. For one, nothing tells you that moving the clip a second time will create a transition. Additionally, once the clips are fused, there is no easy way to configure the transition.

If you just want to slap together a bunch of clips and you don’t care a whole lot what that looks like, PiTiVi is the way to go. Otherwise, I’d really rather use the configurable OpenShot.

Conclusion

NLVEs on Linux don’t have all the bells and whistles of Windows or Mac packages, or even simple plain old YouTube. None of the packages tested could fix shaky videos, for instance (several of them could make stable videos shaky, though, if that helps anyone). I would certainly say that the current weak spot of all packages is the selection of effect: they are either not curated enough (and you have a random jumble of the useful and useless), or too spartan, or both.

For the absolute beginner, I suggest OpenShot. It’s easy to use, rock solid, and fairly fast. Once you know what you are supposed to do and the terminology used, you can get your finished video in no time. As a bonus, OpenShot has a clip editor that allows you to do the initial trimming of the longer clips within the application (I use avidemux for the same purpose).

For the (wo)man on a tight schedule, PiTiVi is the way to go. If you have created a video once, the next one is out the door in no time: import videos (fast!), place them on the timeline, overlap for transition, add effects. Done!

If you want your videos to look more professional, you will need to use Kdenlive. It’s more complex because it does more, and if you want pixel boxes on people’s faces, or complex transitions, or advanced video effects, you don’t have any other option.

Cinelerra and LiVES, sadly, disappoint entirely. Partly that’s because they haven’t been developed as diligently as the other options (the last Cinelerra release is a year old), and partly because the user interface is so alien, it makes a difficult task even more frustrating.