Kdenlive Meets Studio Dave
Over the past few months I've been drifting into the world of Linux video applications and development. I've already written a review of the LiVES video editor, and I've made occasional reference to the Kino editor. Recently a reader asked if I'd tried a recent version of Kdenlive. I started looking into it and I liked what I saw. The following article is an account of my continuing experience with the latest codebase from the project.
First, the bare-metal description. Kdenlive (Figure 1) is a non-linear video editor for Linux, FreeBSD, and OSX. It supports realtime input from camcorders (DV, HDV, professional, etc), cameras capable of MPEG4 and H264 output, and standard USB-compliant webcams (some of them, that is). File I/O is supported for a variety of video and audio codes and formats, including AVI, MPEG, FLV, raw DV, WAV, and many others. Kdenlive's editing features include a track-based A/V mixer, effects and transitions processing, keyboard accelerators, and non-blocking rendering. Of course all common editing operations are also supported, e.g. cut/copy/paste, splicing, track solo/mute, and so forth.
Kdenlive is software libre licensed under the GPL. It leverages the power of other free software projects such as Qt4, MLT, and FFmpeg, and it requires the base libraries for KDE, though you do not need to run the KDE desktop. Pre-compiled packages are available for various Linux distributions, and all source code is freely available.
The Test System
The test system hardware includes an AMD64 3800+ CPU (~2.4 GHz), 4G RAM, and a fast large hard-disk. Video hardware includes a Logitech webcam and a Samsung DV-capable camcorder connected to the machine by an IEEE1394 interface. The Linux distribution is Ubuntu Jaunty customized with a realtime kernel (2.6.29) and various packages from the Ubuntu Studio project. The KDE libraries are from version 4.2.2 of the desktop, and the Qt4 libraries are at version 4.5.0.
The audio system is built around an M-Audio Delta 66 audio interface and an on-board varietal of the Intel HDA chipset. The available audio options for the test box included ALSA and OSS. JACK support is not currently available for Kdenlive.
Kdenlive is probably included in your distribution's software repositories. However, my Ubuntu Jaunty's repos offer only version 0.7.3 while the program's official release version has already reached 0.7.5 (and 0.7.6 may be on-line as you read this article). Studio Dave must have the latest & greatest versions, so I decided to build Kdenlive from its source code.
I had installed the Ubuntu Studio video packages, so I completely removed the Kdenlive and MLT (Media Lovin' Toolkit) packages. MLT is a "... multimedia authoring and processing framework and a video playout server for television broadcasting", a perfect fit for Kdenlive's purposes. MLT is a major required component, and the latest Kdenlive wants the latest MLT (also unavailable from the repos). Thus, I had to build the MLT software from its GIT sources :
cd ~/src git clone http://mltframework.org/mlt.git cd mlt ./configure --prefix=/usr --enable-gpl --avformat-swscale make sudo make install
Easy enough, but if you plan to compile MLT be sure to run ./configure --help to view the available options and required dependencies. In my build instructions I include an option to enable the building of modules covered by the GPL, another option to customize the avformat software, and a preference setting for the installation path.
Building Kdenlive is about as easy as compiling MLT. Here's the step-by-step process I followed to build the program from its SVN source code repository :
cd ~/src svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/trunk/kdenlive cd kdenlive mkdir build; cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr make sudo make install
Of course the success or failure of the procedure depended upon the installation of the necessary libraries and other tools. Fortunately the Jaunty repos provided all needed components, including all the required development packages, and at last I had the latest Kdenlive, version 0.7.5 at revision level 3962.
Startup And Configuration
You can start Kdenlive by clicking on its menu icon or by entering kdenlive at an X terminal prompt. The command accepts only a few options, including some specific to Qt and KDE factors. You can indicate the path to the MLT environment, you can specify a project file to load at startup, and that's about it.
When the program opens you'll be greeted by a setup wizard that will walk you through the essential configuration. After Kdenlive has started you can further configure the program to refine its audio/video support and other capabilities. The Settings/Configure Kdenlive dialog (Figure 2) contains selections for setting display properties, the MLT environment paths, playback and recording defaults, FFmpeg transcode profiles, and various other default values. When you've configured Kdenlive for your devices and other system capabilities you're ready to start working on your first Kdenlivened cinematic masterpiece.
Kdenlive accepts input streams from camcorders and webcams. Alas, the program refused to recognize my Logitech webcam, even after I changed its settings to values known to work with other webcam recording software. However, Kdenlive immediately recognized my camcorder, and I had no trouble recording or playing back video from that device. Thanks to Kdenlive's deployment of recordmydesktop you can also record activity on your desktop display, including sound. The active input device is selected in the Record Monitor window, and you can declare your default device in the Capture section of the Settings/Configure Kdenlive dialog.
As I've already mentioned, Kdenlive accepts a variety of video and audio file types. The program can also create slideshows from still images in JPEG, GIF, PNG, and other popular image formats. See the complete list of supported input file formats at the Supported Formats page on the Kdenlive Web site.
Output is similarly flexible. Projects can be saved with their complete clip-sets and multitrack layouts, along with all settings for effects and transitions. Rendered projects may be targeted for a variety of popular export types, including DVD, HDV, YouTube, Vimeo, and others. This feature takes the guesswork out of the sometimes confusing welter of options available for those targets, it's a sweet touch from the developers. Finally, if your intended product is a DVD, you'll like Kdenlive's DVD Wizard (Figure 3). This item reduces DVD production to a series of mouse clicks and occasional text entries, and I must say that it's one of the easiest ways I've encountered for simple production of a DVD in Linux.
A Kdenlive Project
We'll create a simple small-scale project to show off some of Kdenlive's basic features. First, select the New Project item from the Files menu, then add some media clips to it with the Project/Add Clip dialog. File formats can be mixed freely, without concern for compatibility - Kdenlive takes care of that behind the scenes - and the program has happily accepted every file I've thrown at it so far. We can also add audio tracks in various formats, but for now we'll remain focused on video files.
Each clip is added to the Project Tree panel in the upper left corner of the main display (Figure 4). To add a clip to an existing track simply drag & drop the clip anywhere into the preferred track. Multiple clips can be sequenced in a single track, but layering within a single track is not permitted. In Figure 5 we see the results of a track layout with four clips laid sequentially into two tracks. Each clip is labelled and includes an audio and/or video thumbnail (which can be toggled in the Configure Kdenlive Display dialog).
At this point we can render the layout in Figure 5 and view a sequence of four videos played one after the other. That's nice, maybe even interesting, but it would be much nicer and far more interesting if we could overlap those clips and perform effects such as cross-fades and dissolves between them. Kdenlive can do it, thanks to its track-based effects known as video transitions. As I mentioned, you can drop a clip anywhere into a track. However, merely overlaying clips in your tracks will not render them in a mixture. On playback each clip will render in turn as the previous clip reaches its endpoint. Figure 6 illustrates such a layout. After the first clip finishes playing the next clip comes in abruptly at the first clip's endpoint, and so on for the subsequent arrangement of clips. To create, view, and render a mixture of layered clips you'll need to employ video transitions.
Transitions are processes applied between tracks, such as a cross-fade from one clip into another. Kdenlive includes the expected dissolves, slides, and wipes along with some more exotic possibilities such as alphaxor, hardlight, and grain extract. I don't know yet what those last three transitions do, but Kdenlive makes it easy to discover. To create a transition simply right-click within your selected primary clip and choose an effect from the Add Transition menu. The transition graphic can be relocated at will and includes handles for setting the length of the transition. Left-click on the transition name to open its parameter dialog (if any). Parameter updates are fast and smooth, but as far as I know there is no mechanism for external control protocols such as MIDI or OSC. You can have some great fun learning how to use transitions, so be prepared to spend some serious play-time with them.
In Figure 6 the overlapping clips are controlled by three transitions, a dissolve, a wipe, and a slide. The screenshot displays the controls and settings for the wipe transition, including the image file used to define the transition style. The figure also indicates that the final clip has an effect added to it, a Fade To Black.
In Kdenlive an effect is a process applied to a discrete clip or group of clips. A generous collection of effects types can be found in the Effects List located to the right of the Project Tree. Kdenlive currently supports the Frei0r video plugins, audio plugins ported from the venerable SoX project, and visual processing modules provided by MLT. By default all audio and video effects are listed, but the list can be delimited to show only audio, video, or custom effects. To apply an effect to a clip drag & drop the desired item from the Effects List into the target. The effect's parameter controls are displayed to the right of the Effects Stack box and are usable in realtime. Custom effects chains can be built by populating the Effects Stack with selected processors and setting their available controls to your preferences. When you're satisfied with the blend your custom stack can be saved and reloaded at any time from the Effects List. This method is a neat and simple way to construct unique blends of existing effects. It's also just great fun to play with, so be prepared to lose more hours in wild experimentation with Kdenlive's effects.
By the way, I like the ability to work on clips and the track layout in one screen, it contributes to a fast efficient workflow. Alas, my dry description fails to relate just how easy it is to work in Kdenlive, you'll just have to try it yourself.
The Audio Side
Kdenlive's audio support is configured through the Settings/Configure Kdenlive dialog's Capture and Playback panels. My build of Kdenlive supports the ALSA and OSS audio backends. It can also utilize the PulseAudio, Esound, and aRts audio servers, but alas, there is currently no support for the JACK system.
Audio within a clip can be muted, and new audio tracks can be added to the timeline, but I haven't yet found a way to directly delete or replace a clip's soundtrack. As noted earlier, various audio effects are available, including reverbs, a flanger, filters, and other standard audio processing modules, but alas again, Kdenlive does not support the LADSPA or LV2 Linux audio plugin APIs.
An effect is applied in the same manner as a transition, i.e. right-click on a clip and select an item from the Add Audio Effect menu. Like the video effects, any user-controllable parameters will be displayed in the Effects Stack panel. And alas yet once more, as far as I can tell Kdenlive provides no mechanism for automating parameter controls via MIDI, OSC, or other protocol. Neither does it provide any audio editing capability beyond the addition of effects.
When your clips and tracks have been edited and arranged to your satisfaction it's time to render the mix. The process is somewhat anticlimactic: Press the Render button, define the parameters for the output format, then enjoy a cup or glass of your favorite beverage while Kdenlive does its thing. Rendering times are a bit unpredictable: A 2-track, 2-clip project with a running length of ~2 minutes took roughly 2 minutes to render, while a 3-clip/3-track project that lasts 40 seconds took slightly more than 3 minutes. Apparently rendering is dependent on various factors, including file types and lengths. Large-scale projects may take a long time to render, so be prepared for a wait if you're working on a big project.
Various crashes occurred with my first build. The program segfaulted with any selection from the With Track menu in the Transitions panel, and sometimes it crashed after saving my work (a timely crash, if there is such a thing). At first I was inclined to describe Kdenlive as too brittle to recommend for hard daily use. However, stability is indeed an issue with the developers, and I was pleased to note that the program got a little more solid with each revision I checked out of the SVN repository. If the devs continue this level of attention to its performance then I have high hopes for Kdenlive's future development.
The Kdenlive home site offers links to video tutorials, a FAQ sheet, and the user's manual. The Kdenlive forum is another good source for information, as are YouTube (800+ hits) and Google (a predictably vast number of hits). The developers are also available via email and IRC, though it's hard to imagine encountering a problem not yet encountered by other users. Despite its relatively early release stage Kdenlive is already a popular program, with many dedicated and helpful users.
To be fair, it should be remembered that Kdenlive is only at version 0.7.5 (with 0.7.6. coming on fast) and is still some distance from its eventual 1.0 release. Meanwhile, I have a wishlist that the developers might want to consider.
The first draft of this article was critical of Kdenlive's stability. Kdenlive's features are to no avail if the program won't stay open long enough to use them without fear of segfaults. However, I must note that by revision 3999 the program has become more crash-resistant. Hopefully the developers will continue to harden Kdenlive against random segfaults.
Kdenlive needs JACK. JACK is the future and the here & now for professionally-capable Linux audio systems, and Kdenlive would profit hugely from an alliance with JACK, especially with its transport controls. I would also like to see support for LADSPA and LV2 audio plugins (and maybe even for native Linux VSTs). The SoX collection is nice, but the LADSPA/LV2 collections include some excellent processors not available from SoX. A callout to an external audio editor would be cool, as would parameter automation. In truth, Kdenlive would profit from a variety of improvements to its audio arsenal. Finally, I want a mechanism for looping clips and/or repeat-pasting within a track, and I'd like to see my webcam work while in Kdenlive. I'm sure I'll think of other suggestions, but these are the ones that would most enhance the enjoyment of Kdenlive here at Studio Dave.
Update: Thanks to help I received at the Kdenlive Forums I've learned more about Kdenlive since I submitted this article. I know now that the program already uses some LADSPA plugins in its effects list, though in an indirect way. A simple XML file contains the information necessary to invoke a plugin and create a basic GUI for its parameters. It's easy to add plugins to Kdenlive's effects list, and I'm already working on bringing in a few of my favorite LADSPA plugins. I also learned that I can call an external audio editor from within Kdenlive. In the Settings/Configure Kdenlive dialog the Environment panel includes a tab for selecting default applications for audio and image editors and for the program's default video player. Sweet.
A Casual Comparison
A reader asked me to compare the LiVES editor with Kdenlive. I tend to agree that comparisons are usually odious, but I decided to build the latest SVN sources for LiVES on the same system I used for this review of Kdenlive. I didn't plan any impartial study or unbiased analysis, I simply worked on the same project in both applications. Kdenlive easily won the palm for its user interface, but LiVES includes some features I really missed while working with Kdenlive, e.g. reading from a DVD, support for JACK, and various audio-related functions not found in Kdenlive. LiVES is also more stable, though I discovered some surprising problems in its Multitrack mode. Nevertheless, I found Kdenlive's UI to be a powerful attraction. I definitely worked faster in Kdenlive, especially when adding transitions, but I have no final preference and I will continue to watch and test the development of both programs.
There's a lot to like about Kdenlive, and I like it a lot. Its feature set is full enough to satisfy basic desktop video production needs, and its workflow is uncomplicated and easy to learn. However, it must be considered that I've reviewed a personal build from SVN sources. I look forward to what my readers have to report regarding Kdenlive's utility and stability on their systems.