Skip to content
Open Source API and interchange format for editorial timeline information.
Python C++ Swift Objective-C++ Objective-C Mathematica Other
Branch: master
Clone or download
reinecke and ssteinbach AAF reader: global_start_timecode fixes (#558)
* AAF global_start_timecode fixes including:
1. Added code to look for LegacyTimecode (Premiere AAFs) in addition to Timecode
2. Updated to support fps fractions
3. Timecode candidate selected for global_start_timecode is now selected using PhysicalTrackNumber
* Fixed AAF test for python 2.7 integer floor division
* Adjusted from x import y imports so that they retain module namespacing
Latest commit 36f85f7 Aug 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib/opentimelineio_contrib AAF reader: global_start_timecode fixes (#558) Aug 15, 2019
docs Update docs for pyaaf2 (#554) Aug 7, 2019
examples More examples & documentation (#344) Oct 23, 2018
src Detect submodules not synced (#556) Aug 8, 2019
tests Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
.codecov.yml Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
.gitignore Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
.gitlab-ci.yml Updated build to include Python 3.6 (#291) Jul 30, 2018
.gitmodules Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
.readthedocs.yml Add cmake/C++ support to ReadTheDocs documentation generation. (#547) Aug 7, 2019
.travis.yml Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
CMakeLists.txt Detect submodules not synced (#556) Aug 8, 2019
CODE_OF_CONDUCT.md Added Code of Conduct (#234) Feb 22, 2018
CONTRIBUTING.md Wiki removal (#340) Oct 10, 2018
LICENSE.txt Burnin adapter (#167) Oct 5, 2017
MANIFEST.in Add cmake/C++ support to ReadTheDocs documentation generation. (#547) Aug 7, 2019
Makefile Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
NOTICE.txt Public beta (#140) Jul 28, 2017
OTIO_CLA_Corporate.pdf Public beta (#140) Jul 28, 2017
OTIO_CLA_Individual.pdf Public beta (#140) Jul 28, 2017
README.md
readthedocs-conda.yml Add cmake/C++ support to ReadTheDocs documentation generation. (#547) Aug 7, 2019
setup.cfg Replace OTIO Core with python-wrapped C++ (#540) Jul 22, 2019
setup.py Detect submodules not synced (#556) Aug 8, 2019

README.md

OpenTimelineIO

OpenTimelineIO

Supported VFX Platform Versions Supported Versions Build Status codecov docs

Main web site: http://opentimeline.io/

Documentation: https://opentimelineio.readthedocs.io/

GitHub: https://github.com/PixarAnimationStudios/OpenTimelineIO

Discussion Group: https://groups.google.com/forum/#!forum/open-timeline-io

PUBLIC BETA NOTICE

OpenTimelineIO is currently in Public Beta. That means that it may be missing some essential features and there are large changes planned. During this phase we actively encourage you to provide feedback, requests, comments, and/or contributions.

Overview

OpenTimelineIO is an interchange format and API for editorial cut information. OTIO is not a container format for media, rather it contains information about the order and length of cuts and references to external media.

OTIO includes both a file format and an API for manipulating that format. It also includes a plugin architecture for writing adapters to convert from/to existing editorial timeline formats. It also implements a dependency- less library for dealing strictly with time, opentime.

You can provide adapters for your video editing tool or pipeline as needed. Each adapter allows for import/export between that proprietary tool and the OpenTimelineIO format.

Documentation

Documentation, including quick start, architecture, use cases, API docs, and much more, is available on ReadTheDocs

Adapters

OpenTimelineIO supports, or plans to support, conversion adapters for many existing file formats, such as Final Cut Pro XML, AAF, CMX 3600 EDL, etc.

See: https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html

Other Plugins

OTIO also supports several other kinds of plugins, for more information see:

  • Media Linkers - Generate media references to local media according to your local conventions.
  • HookScripts - Scripts that can run at various points during OTIO execution (ie before the media linker)
  • SchemaDefs - Define OTIO schemas.

Installing / Quick-Start

You can install OpenTimelineIO via

pip install opentimelineio

For more details, including how to run the included viewer program, see: https://opentimelineio.readthedocs.io/en/latest/tutorials/quickstart.html

C++ Installation Instructions

  1. Get the source and deal with submodules:

    • git clone git@github.com:PixarAnimationStudios/OpenTimelineIO.git
    • cd otio
    • git checkout cxx
    • git submodule init
    • git submodule update
  2. If you want to only build for C++ development (i.e. produce the OTIO C++ libraries and header files), then use cmake:

    • mkdir build
    • cd build
    • ccmake .. (configure PYTHON_EXECUTABLE, PYTHON_LIBRARY, and CMAKE_INSTALL_PREFIX)
    • make install
  3. If you wish to build only for use with Python, run one of the following two commands:

    • pip install .
    • python setup.py install
  4. However, if you want to build for Python but you also want to install the OTIO C++ headers and libraries, then run one of the following two commands

    • pip install . --install-option=“--cxx-install-root=/home/someone/cxx-otio-root"
    • python setup.py install --cxx-install-root=/home/someone/cxx-otio-root

    To compile a C++ file, add the following -I flags:

    • c++ -c source.cpp -I/home/someone/cxx-otio-root/include -I/home/someone/cxx-otio-root/include/opentimelineio/deps

    To link, add the following -L/-l flags:

    • c++ ... -L/home/someone/cxx-otio-root/lib -lopentimelineio

    (If you are using only opentime, not opentimelineio, use -lopentime. Also, you could leave out the second -I flag.)

Example Usage

import opentimelineio as otio

timeline = otio.adapters.read_from_file("foo.aaf")
for clip in timeline.each_clip():
  print clip.name, clip.duration()

There are more code examples here: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/master/examples

Also, looking through the unit tests is a great way to see what OTIO can do: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/master/tests

OTIO includes a viewer program as well:

OTIO View Screenshot

Developing

If you want to contribute to the project, please see: https://opentimelineio.readthedocs.io/en/latest/tutorials/contributing.html

You can get the latest development version via:

git clone git@github.com:PixarAnimationStudios/OpenTimelineIO.git OpenTimelineIO

You can install development dependencies with pip install -e .[dev]

You can also install the PySide2 dependency with pip install -e .[view]

Currently the code base is written against python 2.7, python 3.6 and 3.7, in keeping with the pep8 style. We ask that before you submit a pull request, you:

  • run make test -- to ensure that none of the unit tests were broken
  • run make lint -- to conform to pep8
  • run make coverage -- to detect code which isn't covered

PEP8: https://www.python.org/dev/peps/pep-0008/

Contact

For more information, please visit http://opentimeline.io/ or https://github.com/PixarAnimationStudios/OpenTimelineIO or join our announcement mailing list: https://groups.google.com/forum/#!forum/open-timeline-io

You can’t perform that action at this time.