Preamble
Although video editors are complex by nature, the information they need to create a timeline is rather lightweight compared to the data they process. There is therefore no need to create a memory-efficient and/or binary file format. It is more important to have an format which is easy to parse and extensible, an XML-based format is therefore chosen.
Requirements
The various information we need to store can be summarized in 3 categories:
-
Global project information
- metadata: title, comment, revision history, authors, ...
- sources, ...
- export settings, ...
- ...
-
Timeline specific information
- tracks, layers
- layout of sources/effects/transitions,
- ...
-
Extensions information
- Parsing/Serializing done by extension plugins.
Specification
Implementation sample
This page was a draft from 2007. It badly needs to be updated. Help welcome!
<?xml version="1.0"?>
<project xmlns='http://www.pitivi.org/projectxml'>
<formatversion>1</formatversion>
<title>Insane video</title>
<comment>
This is my very first video done with PiTiVi.
</comment>
<authors>
<author id="0" name="Edward Hervey" />
<author id="1" name="George Lucas" />
</authors>
<history>
<revision id="0" date="Mon 25 Sep 2006 12:00" who="0" >Initial version</revision>
<revision id="1" date="Mon 25 Sep 2006 12:25" who="1" />
</history>
<sources>
</sources>
<timeline>
<composition type="video">
<transitions>
<transition type="fade" start="2000000000" duration="2000000000" />
</transitions>
<sources>{startFrom="0"}</sources>
</composition>
<composition type="audio">
<transitions>
<transition start="2000000000" duration="200000000" />
</transitions>
</composition>
</timeline>
</project>
The results of the search are