Since I bought a camera for capturing moments with my daughter, I have been looking at open source video editing software for linux. There’s a whole bunch of programs out there like I hadn’t expected. Some seem to be for the more professional user, some are very basic. Since I have not yet found a program that fits all my (I think rather basic) needs, here’s what I found out. Be aware that I have never used any video editing software before, so I have nothing to compare to.
The laptop I’m doing this on is an Intel® Core(TM) i5-2430M CPU @ 2.40GHz with 8 gigabytes of RAM and a 1 gigabyte AMD Radeon HD 6600M. The rendering settings are Full HD with 29.97 fps h264 codec and L.A.M.E. mp3 stereo audio.
The first thing I wanted to do with the program was cut a camera flight over 4 lying babies and to put each baby’s name in the video before actually showing the baby’s face and play a song alongside the video. So nothing really fancy I guess, and only a couple of minutes long.
The first program I had a look at was PiTiVi since it came as the default video editing program in my desktop linux distribution.
When opening it, there’s a timeline at the bottom, an empty media library at the top left and a preview window at the top right corner of the window. This is what it looked like after finishing the example project:
After adding the source media files to the library, it’s just a matter of dragging and dropping the clip to the timeline and start editing. There are keyboard shortcuts for splitting clips at the current position or unlock a file’s video and audio. It’s also very easy to manipulate sound volume by adjusting the height of the red line in the audio channel. You can also easily crossfade between clips by just letting them overlap for a short time. The first clip will become transparent slowly and the new one will become visible. Nice and intuitive!
When rendering, PiTiVi uses all CPUs:
Rendering the 2 minute exmaple project took about 5 minutes.
Unfortunately, I somehow managed to try settings that caused PiTiVi not to render the video at all but instead sit there at 0% and not do anything and there were a few crashes while editing. Also, after adding some more clips, the program became less responsive and the preview playback slowed down to less than one frame per second. So from being very usable in the beginning it rather quickly became unuseable in at least some situations. I am still not sure what exactly caused this but it made me try the next program:
OpenShot‘s gui looks familiar after having played with PiTiVi, the main functions are in the same place.
You can also move clips around with drag and drop, it is easily possible to cut a clip into two parts and muting video or audio is as easy as a click on an icon in the clip. Right-clicking on a clip opens a context menu for editing clip properties such as playback speed and volume as well as removing it or fading it in or out. Unfortunately, there are no keyboard shortcuts for e.g. cut a clip at the current position so you have to do a lot more clicking.
Unfortunately, after making a couple of cuts to my video files, I couldn’t help but notice the program became slower and slower. While the first few clicks and clip-movements were happening instantly after the click, the more clips there were, the less responsive OpenShot felt. And remember, we’re not talking about a 2 hour edit with tons of effects and tracks. At the end of my “baby flight project”, it took OpenShot over 4 seconds to react to a click. There was plenty of free RAM and no excessive disk I/O, so to me it’s rather unclear what the bottleneck is here … When rendering, I noticed that it fails to use all CPU cores. The most I saw was 185% usage (on a quad core system 400% would be max) and it was not disk bound. So the process takes a couple times as long as it had to be if the hardware I’m running on was used properly. Hmpf :(
Rendering the 2 minute example took well over 6 minutes.
Next I had a look at Cinelerra. While making a very professional impression, it unfortunately fails to play a fluent preview video because it only supports OpenGL on NVidia Cards. Without fluently playing preview, it was impossible to cut the video in the places I wanted to so I aborted this test. Sad to say so since other than that, it looked pretty impressive and the reviews I read about Cinelerra made me want to try it. Maybe they will add support for AMD cards some time, then I’ll take a look at it again for sure.
Avidemux and Kino
Searching the web, there were a couple of other programs in the video editing area like avidemux and kino. These are rather basic feature programs, but still, I wanted to try them. Avidemux could most likely have done what I needed but unfortunately, it fails to play preview in real time. So, as with cinelerra, I aborted the test. Kino could not open the video files from my camera and started converting each file for half an hour each file. That’s not really an option and a waste of time, so I did not look any deeper into kino.
So basically, it comes down to PiTiVi vs. OpenShot. While PiTiVi’s gui surely rocks (crossfades, keyboard shortcuts) and it has the advantage of multithreading (more speed), it unfortunately lacks a few features that I found very helpful when using OpenShot. It cannot change playback speed and I could not find a way to easily insert titles. Of course you can just create an image and include it in the media library, but OpenShot’s title editor is a neat thing to have. What’s also very cool about OpenShot is the ability to change playback speed so that fast-forward effects are easily doable and that you can easily create fading effects.
Although OpenShot felt slower and it took more time to render the project, it was more stable and had an intuitive gui. Add multithreading (I know that’s a non-trivial thing to do) and keyboard shortcuts (I don’t like clicking) and I’d be happy to keep using it. In order for PiTiVi to become my favourite, it would have to feature a stable fluent preview video function and the ability for speed adjustment.
While no program is perfect (yet), this project showed me once again, that for a consumer’s work with a (even multimedia-) computer, there’s absolutely no need for Windows any more these days.