How do I write plug-ins?

How does it work? Are there any easily comprehended way to write plug-ins and add-ons?

What can you do with plug-ins and add-ons? Are they purely image and transition effects or could you,as an example, write a plugin that exports EDL-lists?

How do you install plug-ins and add-ons?

Plugins support is only starting. I will write a documentation as soon as it is a bit more advanced.

I am still not sure what is the best approach for plugins. Currently, I chose the QtPlugin way, which means that plugins must be written in c++. However, you don't need to know anything about Kdenlive to write it.
Currently, Kdenlive sends some infos to the plugin (see current param list below), and the plugin can create a westley (xml) clip with that info, save it to a file and pass back the url to Kdenlive to add it to the project list.

If you are interested, you can have a look at the plugin/sampleplugin directory which contains the first plugin.

Currently, the infos available to the plugin are those:

const QString &generator: name of the plugin
const KUrl &projectFolder: project folder
const QStringList &lumaNames: list of the available luma files for transitions
const QStringList &lumaFiles: path for the luma files
const double fps: project fps
const int width: width of the project video frame
const int height: height of the project video frame

My first idea for plugins was to allow to create different kind of clips with a simple c++ file.
However, different kind of plugins can be written, and the current project xml playlist could easily be passed to the plugin...

Hope it helps


I was just curious since I didn't find any info on this and I think good plugins adds very much to a software. Anyone can extend it's usability without having to dig into it's main code.

Unfortunately it seems rather complicated for my programming skills which mostly limits to some lua plugins for AnimeStudio... But I'll look into it when I get some time in the future.

Perhaps you could try to write a little about how you do plugins in lua for AnimeStudio.

(And, jb: it should be feasible to write a C++ plugin that loads kross, and use kross to expose plugin interfaces for the kross compatible languages, I reckon. Not that I am asking you to do it, but longer term, not? )

Yes, I was also thinking about integrating Kross into Kdenlive so that we get support for several scripting languages. Scripting is definitely a very important feature for Kdenlive, so I will look at it in the not too far future.

Yes, Yes, Yes !!

Plugs ins are very important perhaps a great open library of plugins for visual effects could really make a great difference for Kdenlive !!

We need LLOOOOTSS of visual effects.. shadows, bevels, perspectives, borders, feather, masks, video inside a polygon, ... and please all of them should be keyframable..

I have to confess I really like the foundations of the kdenlive concept (interface and concept is already in the right direcion..) so just a bit of more work to make it stable and making a very great OPEN library for fx effects would make Linux the platform for video at last !!

PS: have you heard of this project??

cheers and many thanks to all the great developers of open source !! you are fantastic..!

yes, i've read of this project on a thread here in the forums... i think it could really be THE way to support effects and transitions... i promise i'll take a look on that as soon as possible!