Howto develop Kdenlive

For developers, the steps to participate are as follows:

Understanding how Kdenlive works

Like in any good free software project, the GUI and the framework rely on different projects:

  • FFMpeg provides audio and video codecs.
  • MLT is the video editing engine. I provides shared libraries and a command line player called "melt".
    MLT can be easily extended to support more audio, video codecs and effects.
  • Kdenlive is the graphical interface to MLT.
    It relies on KDE4 but works very well under Gnome too.

Most of time, new features need to be added to MLT and Kdenlive.
As a rule, you should be able to play any video editing project using melt and Kdenlive.

MLT has several GUIs, including Kdenlive. We do not accept new features which cover only Kdenlive and not MLT. We would like to make possible for other developers to work on other interfaces.

Setting-up a developing environment

We recommend using a Debian SID distribution. It is updated very rapidly on the contrary of Ubuntu, which lacks months behind.

You can use the following /etc/apt/sources.list:

deb http://ftp.fr.debian.org/debian/ experimental main contrib non-free
deb-src http://ftp.debian.org/debian/ experimental main contrib non-free
deb http://ftp.fr.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.debian.org/debian/ unstable main contrib non-free
deb http://ftp.fr.debian.org/debian/ testing contrib non-free main
deb-src http://ftp.fr.debian.org/debian/ testing contrib non-free main
deb http://ftp.fr.debian.org/debian/ stable contrib non-free main
deb-src http://ftp.fr.debian.org/debian/ stable contrib non-free main
deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main
deb http://www.debian-multimedia.org experimental main
deb-src http://www.debian-multimedia.org experimental main

A recommended /etc/apt/apt.conf

APT::Cache-Limit 40000000;
APT::Default-Release "unstable";

To upgrade to Debian SID:
apt-get update; apt-get dist-upgrade

Install VDPAU

If you are running VDPAU, install Nvidia proprietary drivers:
apt-get install nvidia-kernel; module-assistant a-i nvidia-kernel ; apt-get install nvidia-glx nvidia-libvdpau1-dev
Modify /etc/X11/xorg.conf and replace "nv" with "nvidia" in the driver section.

Checkout the source from SVN and GIT

Then checkout Frei0r-plugins, MLT and Kdenlive from sources. You may find useful information here:
http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/...

Frequently Asked Question for developers

Question: I would like to add a new effect to Kdenlive. How to add the effect in MLT?
Answer: check-out Frei0r and MLT and read frei0r plugin code in MLT: /src/modules/frei0r . You can either add a new plugin to MLT or add the feature in Frei0r, which is already implemented in MLT. Other choices are also possible. Discuss this with us.

Question: Why should I join Kdenlive and not project Foo?
Answer: MLT is the future of video editing and it is already a standard on GNU/Linux platforms. Other frameworks are oriented towards displaying video, not editing it. With the separation of video libraries (FFmpeg codecs), video engine (MLT) and user interface (Kdenlive), you have a more secure framework. Furthermore, our community is very well organized to track bugs, make frequent releases and write documentation. We will still be there in 10 years. So if you add some code to FFmpeg, MLT or Kdenlive, be sure your time is not lost. If you need a specific feature, don't loose time working on a minor video tool. Kdenlive and MLT provide you the basic import/export and timeline. So that you can concentrate on the quality of your code.

Check bug reports and features requests

Visit the Roadmap page.
You might also want to have a look at the Brainstorming section of our forum

Submit any code that could be useful.