ProjectFileFormat

From PiTiViWiKi

This is a Draft !!!


Contents

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
    • Title, comment, revision history, author(s), ...
    • sources, ...
    • export settings, ...
    • ...
  • Timeline specific information
    • Tracks,
    • layout of sources/effects/transitions,
    • ...
  • Extensions information
    • Parsing/Serializing done by extension plugins.

Specification

Namespace

The namespace for is : http://www.pitivi.org/projectxml

Implementation

Sample

<?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>
    <source id="3EFE72CDBAE93824" location="/media/video/02.dv" size="1024000" length="300000000000" />
    <source id="96973EF0BED563EF" location="localvid.wmv" size="2000000" length="530340000000" />
  </sources>
  <timeline>
    <composition type="video">
      <transitions>
        <transition type="fade" start="2000000000" duration="2000000000" />
      </transitions>
      <sources>
        <source id="3EFE72CDBAE93824" start="0" duration="3000000000" media-start="10000000000" />
      </sources>
    </composition>
    <composition type="audio">
      <transitions>
        <transition start="2000000000" duration="200000000" />
      </transitions>
    </composition>
  </timeline>
</project>