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.


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.


Implementation sample

This page was a draft from 2007. It badly needs to be updated. Help welcome!

<?xml version="1.0"?>
<project xmlns=''>
    <title>Insane video</title>
        This is my very first video done with PiTiVi.
        <author id="0" name="Edward Hervey" />
        <author id="1" name="George Lucas" />
        <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" />
        <composition type="video">
                <transition type="fade" start="2000000000" duration="2000000000" />
        <composition type="audio">
                <transition start="2000000000" duration="200000000" />

The results of the search are