Recently the Kdenlive developers have started using the KDE Git repository. One of the Kdenlive developers Jean-Baptiste Mardelle introduces us to this video editor.
What is Kdenlive?
The idea behind Kdenlive was to make video editing possible and easy on the Linux desktop. Kdenlive allows you to capture videos from your camcorder or import video files, edit them, add effects and transitions then render to any format you want. It has an intuitive interface as well as some advanced features.
What is the history of the project?
The project was started in 2002, and at that time it used a different engine (called PIAVE) for video editing. Around 2005, the video engine's development stopped and Kdenlive almost died, the original author left the project. A few months later, Jean-Baptiste Mardelle, one of the developers was told about the MLT video engine, and decided to port Kdenlive to MLT. Since then, Kdenlive has slowly but steadily evolved, and in the last years several new contributors have joined the project, which is now recognized as a major actor in the Linux video editing scene.
What are the reasons for moving to KDE's Git, was SVN insufficient?
There are two main reasons. Until now, Kdenlive's code was hosted on SourceForge and we wanted to get closer to the KDE community, so that we can get more contributors and also take advantage of the KDE infrastructure. The other reason is that git makes it easier to work on new features in branches, so that we can keep trunk stable while developing new features.
How does Kdenlive compare to other free software video editors for Unix-like OS's?
Kdenlive integrates well with the Desktop experience by using standard Qt and KDE technologies. It has a familiar look that makes it is easy to start working, while having some advanced features like 3 point editing, keyframable effects, color correction, scopes, stop motion utility, DVD export and can capture from firewire, HDMI or webcam.
Why does Kdenlive use the MLT-framework instead of the more ubiquitous GStreamer framework? What are the advantages and disadvantages?
The MLT framework was originally developed as a realtime framework for television broadcasting. As such, it provides a really good framework that brings together many multimedia projects like FFmpeg, sox, frei0r, jack, etc. Back in 2005, when the MLT engine was chosen, GStreamer did not provide the necessary features and since then, MLT was widely tested and is a reliable engine. We are also working closely with Dan Dennedy who is MLT's maintainer, which allowed us to integrate specific Kdenlive's features directly in MLT. All MLT features can be accessed using a simple XML syntax, and you can also manipulate the objects in realtime, for example changing an effect's parameters and see the changes in realtime while playing the project.
The disavantages of using MLT is that there are not much people working on MLT (mostly one), and that it relies a lot on FFmpeg. FFmpeg's dependency is an issue, because the project evolves quickly but does not release often (not to mention the recent fork and codec patent issues), so distros don't usually ship a recent FFmpeg version. In fact, almost half of the reported bugs come from installation issues, many people experience crashes because MLT or FFmpeg is not configured or installed properly.
What have been the most significant changes made to the application recently?
The recent changes have been the addition of scopes that allow users to monitor the audio and video signal, and also a rewrite of the capture stuff, with support for some hardware to allow HDMI input / output (you can for example view your editing live on an HDMI monitor). Several people are also currently working on the documentation which was never really up to date.
What are the plans for the future?
We are currently trying to refactor the source code to clean it up and make it easier for new contributors to get involved. One feature we will try to implement quickly is some kind of versioning for the project files, to ensure users don't lose their project's data. We would also like to implement unit tests to prevent regressions.