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