.kdenlive project files are describing the source media used in a project, as well as the use of that media as in the timeline. For most media, such as video, audio, and images, Kdenlive stores only a reference in a project, but not the media itself. Only some media gets stored directly inside Kdenlive’s project files, most notably Kdenlive title and color clips.
At this time of this writing
.kdenlive project files can be roughly categorized into these (currently) three generations:
- generation 1 projects were created and edited the last time using Kdenlive up to 0.9.10. These are the Kdenlive versions developed for KDE 4.x. (While this isn’t strictly true, we won’t go into discussions about the early KDE 3.x versions of Kdenlive.)
- generation 2 projects are those created or last edited using Kdenlive 15.04 or later, up to 17.08 stable (that’s the current assumption, or hope, at this time of writing).
- generation 3 projects aren’t yet in out the wild. They will be those projects created or edited using Kdenlive versions with the new Timeline II engine that currently is under heavy development.
Note: admittedly, I’ve coined the term “Timeline II” here for lack of a better term; “new timeline” will one day be old by generation 4, so I plan already for that in the hope that neither Jean-Baptiste nor Nicolas are going to hit me over this… 😉
All those generations of
.kdenlive project files are basically MLT XML files (where MLT is Kdenlive’s media engine, called the MLT Multimedia Framework). However, the amount of Kdenlive project data considers considerably between gen-1 and gen-2 projects.
The gen-1 projects contain a lot of project data that needs to be duplicated into the outer MLT XML data in order to MLT understanding what it needs to do. As an unfortunate consequence of this data duplicity,
gen-1 projects had the habit of getting the outer MLT data out of
sync with the inner Kdenlive project data. For instance, sometimes the
effects as rendered got out of sync with the effect parameters as set in
the Kdenlive user interface. As the proper remedy for this situation, the Kdenlive developers switched to gen-2 as part of their porting Kdenlive to the KDE Frameworks 5 (or “KF5” for short).
Part of the port of Kdenlive 15.04 to the KDE Frameworks 5 (KF5) was to remove the data duplicity from the Kdenlive project file structure. These gen-2 projects now avoid storing any inner
Kdenlive project data that’s
already present in the outer MLT data layer, and needed there for MLT to render Kdenlive projects.
This fixed project data model results in much more stable
Kdenlive project behavior. As another positive side effect, it’s now
much easier to manually edit or create Kdenlive XML project files from
outside Kdenlive. Personally, I havn’t seen the gen-1 sync problems anymore with the gen-2 projects, and I’m thankful for this.
This section is to be written when this has stablized and more details become available.
- Kdenlive Project Format gives more insight into the general structure of Kdenlive gen-2 project files.
- the Kdenlive Project Analyzer is kind of a (crazy) simple Kdenlive doctor, showing some statistics and details when given a Kdenlive gen-2 project file. You can even try the Kdenlive Project Analyzer online using Chrome/Chromium or Firefox. Sources are available on GitHub.