Hi Camille, thanks for the response! Hopefully the devs will be able to chime in with more detail.
The issues in this case are definitely Kdenlive-specific: MLT actually does have a DTD [0], which I've helped update a couple times in order to keep in-the-wild .kdenlive files compliant with the MLT spec. [1][2] I'm able to parse .kdenlive files as MLT XML, but I can't make sense of the Kdenlive-specific features below. Thanks, Tom [0] https://github.com/mltframework/mlt/blob/master/src/modules/xml/mlt-xml.dtd [1] https://sourceforge.net/p/mlt/mailman/message/37335893/ [2] https://sourceforge.net/p/mlt/mailman/message/37125973/ On Wed, Aug 25, 2021 at 05:36:21PM +0200, Camille wrote: > Hi Tom, > > I have no precise answers to your questions, so that's just a quick message > to let you feel not completely on your own on this topic, which is a complex > one and lacks documentation indeed. > > Kdenlive's file format depends a lot on MLT's file format, which is also > lacking documentation. Typically, there is no validating DTD or schema. > > Maybe devs will have time to chime in to give you more precise details on > the points you raised. > > Cheers, > > Camille > > > Le 25/08/2021 à 03:06, amin...@mailbox.org a écrit : > > Or is there a better place to ask questions like this than the mailing list? > > > > Thanks, > > Tom > > > > On Sat, Aug 21, 2021 at 12:20:04PM -0600, amin...@mailbox.org wrote: > > > Can anyone help with this? The Kdenlive File Format docs > > > (https://community.kde.org/Kdenlive/Development/File_format) are out of > > > date and don't discuss any of the below. > > > > > > Thanks! > > > Tom > > > > > > On Thu, Aug 19, 2021 at 10:34:51PM -0600, amin...@mailbox.org wrote: > > > > With the new Kdenlive version I've got (20.12.3), there are a bunch of > > > > new things I'm trying to get my head around in the project XML. Here's > > > > a snippet with a few of them: > > > > > > > > <playlist id="playlist6"> > > > > <entry producer="1" in="00:00:00.000" out="00:00:22.042"> > > > > <property name="kdenlive:id">2</property> > > > > </entry> > > > > <blank length="00:00:01.042"/> > > > > <entry producer="producer0" in="00:00:01.125" out="00:00:04.958"> > > > > <property name="kdenlive:id">3</property> > > > > </entry> > > > > <blank length="00:00:01.208"/> > > > > <entry producer="1" in="00:00:00.000" out="00:00:04.958"> > > > > <property name="kdenlive:id">2</property> > > > > </entry> > > > > <entry producer="producer0" in="00:00:00.000" out="00:00:01.083"> > > > > <property name="kdenlive:id">3</property> > > > > </entry> > > > > </playlist> > > > > <playlist id="playlist7"/> > > > > <tractor id="tractor3" in="00:00:00.000" out="00:00:34.292"> > > > > <property name="kdenlive:track_name">Video 1</property> > > > > <property name="kdenlive:trackheight">71</property> > > > > <property name="kdenlive:timeline_active"/> > > > > <property name="kdenlive:thumbs_format"/> > > > > <property name="kdenlive:audio_rec"/> > > > > <track producer="playlist6"/> > > > > <track producer="playlist7"/> > > > > </tractor> > > > > > > > > The above makes a Kdenlive track ("Video 1"). In previous versions, > > > > this would have been represented as a single playlist. Now there seem > > > > to be two playlists - one empty - fed into a tractor. > > > > > > > > Here's an example of the new grouping syntax as well: > > > > > > > > <property name="kdenlive:docproperties.groups">[ > > > > { > > > > "children": [ > > > > { > > > > "data": "3:555", > > > > "leaf": "clip", > > > > "type": "Leaf" > > > > }, > > > > { > > > > "data": "0:555", > > > > "leaf": "clip", > > > > "type": "Leaf" > > > > } > > > > ], > > > > "type": "AVSplit" > > > > } > > > > ] > > > > </property> > > > > > > > > > > > > I have many questions. Help with any of them is much appreciated: > > > > > > > > - Why are there two playlists for "Video 1"? What is the purpose of > > > > the empty "playlist7"? > > > > - Entries now have a "kdenlive:id" property. What is this ID? Note > > > > in the above the IDs are doubled: there are two different Entries with > > > > ID 2, and two with ID 3. > > > > - In the group syntax, what is the "data" property? As a guess, is > > > > it a kdenlive ID and a number of frames from the beginning of the track? > > > > - What group types are there other than "AVSplit" and "Leaf"? Where > > > > can I find a list of the types and their meanings? > > > > - What "leaf" types are there other than "clip"? > > > > > > > > Thanks, > > > > Tom